Nginx
From TykWiki
Jump to navigationJump to search
nginx is my new favourite webserver. This page contains my notes for when I am installing it on a new machine (well, in a new jail ofcourse).
nginx install
I generally install nginx with as few modules as possible enabled:
[tykling@vpnwiki /usr/ports/www/nginx]$ make showconfig | grep "=on" IPV6=on "Enable IPv6" HTTP_MODULE=on "Enable HTTP module" HTTP_REWRITE_MODULE=on "Enable http_rewrite module"
PHP instal
I also install php-fpm by installing /usr/ports/lang/php5 with the following options:
[tykling@vpnwiki /usr/ports/lang/php5]$ make showconfig | grep "=on" FPM=on "Build FPM version (experimental)" SUHOSIN=on "Enable Suhosin protection system" IPV6=on "Enable ipv6 support"
Misc
Create logfiles folder
I like to keep my webserver logs in /usr/local/www/logs/ so that folder needs to be created:
sudo mkdir /usr/local/www/logs
php-fpm config
I use php-fpm instead of fastcgi to handle the PHP scripts. The config I use for php-fpm is below:
$ cat /usr/local/etc/php-fpm.conf [global] pid = run/php-fpm.pid log_level = error [www] listen = /var/php/php-fpm.socket user = www group = www pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35
I also create the folder /var/php/
to hold the actual socket opened by php-fpm.
nginx config
After installing nginx I replace the default config with something more sensible, like this example for a mediawiki install:
worker_processes 1; error_log /usr/local/www/logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type text/plain; log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; error_log /usr/local/www/logs/vpnwiki.ryst.cn.dom.error.log; sendfile off; keepalive_timeout 65; server { listen 80 default_server; listen [::]:80 default_server; access_log /usr/local/www/logs/vpnwiki.ryst.cn.dom.access.log main; server_name wiki.tyk.nu; root /usr/local/www/mediawiki; client_max_body_size 5m; client_body_timeout 60; #mediawiki specific config location / { try_files $uri $uri/ @rewrite; index index.php; } location @rewrite { rewrite ^/(.*)$ /index.php?title=$1&$args; } location ^~ /maintenance/ { return 403; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/php/php-fpm.socket; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { try_files $uri /index.php; expires max; log_not_found off; } location = /_.gif { expires max; empty_gif; } location ^~ /cache/ { deny all; } location /dumps { root /usr/local/www/mediawiki/local; autoindex on; } } }
Enable stuff in rc.conf
#webserver nginx_enable="YES" php_fpm_enable="YES"