Nginx: Difference between revisions
No edit summary |
(→Nginx with PHP: Added link to setup with Acme (letsencrypt) and Category:Web Server) |
||
Line 121: | Line 121: | ||
== Nginx with PHP == | == Nginx with PHP == | ||
[[Nginx_with_PHP#Nginx_with_PHP|Setting Up Nginx with PHP]] | [[Nginx_with_PHP#Nginx_with_PHP|Setting Up Nginx with PHP]] <br> | ||
[[Nginx_as_reverse_proxy_with_acme_(letsencrypt)|Setting Up Nginx as Reverse Proxy with acme (Let's Encrypt)]] | |||
[[Category:Server]] | [[Category:Server]] | ||
[[Category:Web Server]] |
Revision as of 17:37, 4 December 2017
Nginx (engine x) is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server
Installation
Nginx package is available in the Alpine Linux repositories. To install it run:
apk add nginx
Creating new user and group 'www' for nginx
adduser -D -u 1000 -g 'www' www
Create a directory for html files
mkdir /www chown -R www:www /var/lib/nginx chown -R www:www /www
Configuration
You may want to make backup of original nginx.conf file before writting your own
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
Configuring Nginx to listen to port 80 and process .html or .htm files
vi /etc/nginx/nginx.conf
user www; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; access_log /var/log/nginx/access.log; keepalive_timeout 3000; server { listen 80; root /www; index index.html index.htm; server_name localhost; client_max_body_size 32m; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/lib/nginx/html; } } }
Sample page
vi /www/index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>HTML5</title> </head> <body> Server is online </body> </html>
Controlling nginx
Start Nginx
After the installation Nginx is not running. To start Nginx, use start.
rc-service nginx start
You will get a feedback about the status.
* /run/nginx: creating directory * /run/nginx: correcting owner [ ok ] * Starting nginx ... [ ok ]
Restart Nginx
After changing the configuration file nginx needs to be restarted. If you want to restart the web server use restart.
rc-service nginx restart
Stop Nginx
If you want to stop the web server use stop.
rc-service nginx stop
Runlevel
Normally you want to start the web server when the system is launching. This is done by adding Nginx to the needed runlevel.
rc-update add nginx default
Now Nginx should start automatically when you boot your machine next time. To test that run:
reboot
To make sure that Nginx is started run:
ps aux | grep nginx
You should get something like this:
263 root 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf 264 www 0:00 nginx: worker process 310 root 0:00 grep nginx
Testing Nginx
This section is assuming that nginx is running and sample html page "/www/index.html" is created. Launch a web browser and point it to your web server. You should get:
Server is online
Troubleshooting
If Nginx is not started check Nginx log file
less /var/log/nginx/error.log
Make sure that configuration file does not contain errors
vi /etc/nginx/nginx.conf
Nginx with PHP
Setting Up Nginx with PHP
Setting Up Nginx as Reverse Proxy with acme (Let's Encrypt)