Last active
August 29, 2015 13:55
-
-
Save a-yasui/8750109 to your computer and use it in GitHub Desktop.
Nginx + php-fpm configuration memo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;;;;;;;;;;;;;;;;;;;; | |
; FPM Configuration ; | |
;;;;;;;;;;;;;;;;;;;;; | |
[global] | |
; Pid file | |
; Note: the default prefix is /home/yasui/.phpenv/versions/5.3.28/var | |
; Default Value: none | |
pid = run/php-fpm.pid | |
; Error log file | |
; If it's set to "syslog", log is sent to syslogd instead of being written | |
; in a local file. | |
; Note: the default prefix is /home/yasui/.phpenv/versions/5.3.28/var | |
; Default Value: log/php-fpm.log | |
error_log = /srv/log/php-fpm.log | |
;;;;;;;;;;;;;;;;;;;; | |
; Pool Definitions ; | |
;;;;;;;;;;;;;;;;;;;; | |
; Multiple pools of child processes may be started with different listening | |
; ports and different management options. The name of the pool will be | |
; used in logs and stats. There is no limitation on the number of pools which | |
; FPM can handle. Your system will tell you anyway :) | |
; Start a new pool named 'www'. | |
; the variable $pool can we used in any directive and will be replaced by the | |
; pool name ('www' here) | |
[www] | |
; Unix user/group of processes | |
; Note: The user is mandatory. If the group is not set, the default user's group | |
; will be used. | |
user = nobody | |
group = nobody | |
; The address on which to accept FastCGI requests. | |
; Valid syntaxes are: | |
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on | |
; a specific port; | |
; 'port' - to listen on a TCP socket to all addresses on a | |
; specific port; | |
; '/path/to/unix/socket' - to listen on a unix socket. | |
; Note: This value is mandatory. | |
listen = 127.0.0.1:20001 | |
; List of ipv4 addresses of FastCGI clients which are allowed to connect. | |
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original | |
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address | |
; must be separated by a comma. If this value is left blank, connections will be | |
; accepted from any ip address. | |
; Default Value: any | |
listen.allowed_clients = 127.0.0.1 | |
; Choose how the process manager will control the number of child processes. | |
; Possible Values: | |
; static - a fixed number (pm.max_children) of child processes; | |
; dynamic - the number of child processes are set dynamically based on the | |
; following directives. With this process management, there will be | |
; always at least 1 children. | |
; pm.max_children - the maximum number of children that can | |
; be alive at the same time. | |
; pm.start_servers - the number of children created on startup. | |
; pm.min_spare_servers - the minimum number of children in 'idle' | |
; state (waiting to process). If the number | |
; of 'idle' processes is less than this | |
; number then some children will be created. | |
; pm.max_spare_servers - the maximum number of children in 'idle' | |
; state (waiting to process). If the number | |
; of 'idle' processes is greater than this | |
; number then some children will be killed. | |
; ondemand - no children are created at startup. Children will be forked when | |
; new requests will connect. The following parameter are used: | |
; pm.max_children - the maximum number of children that | |
; can be alive at the same time. | |
; pm.process_idle_timeout - The number of seconds after which | |
; an idle process will be killed. | |
; Note: This value is mandatory. | |
pm = ondemand | |
; The number of child processes to be created when pm is set to 'static' and the | |
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. | |
; This value sets the limit on the number of simultaneous requests that will be | |
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. | |
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP | |
; CGI. The below defaults are based on a server without much resources. Don't | |
; forget to tweak pm.* to fit your needs. | |
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' | |
; Note: This value is mandatory. | |
pm.max_children = 10 | |
; The number of child processes created on startup. | |
; Note: Used only when pm is set to 'dynamic' | |
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 | |
pm.start_servers = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
listen *:80; | |
server_name example.com; | |
access_log /var/log/nginx/sup.access.log main; | |
error_log /var/log/nginx/sup.error.log; | |
root /srv/sup/web/; | |
index index.php index.html index.htm; | |
set $check ""; | |
if (!-e $request_filename) { | |
set $check "O"; | |
} | |
if ($request_filename !~ \.php($|/)) { | |
set $check "${check}K"; | |
} | |
if ($check = "OK") { | |
rewrite ^(.+)$ /index.php last; | |
} | |
gzip on; | |
gzip_proxied expired no-cache no-store private auth; | |
gzip_types text/css application/x-javascript; | |
gzip_disable "MSIE [1-6]\."; | |
gzip_disable "Mozilla/4"; | |
location ~ \.php($|/) { | |
set $script $uri; | |
set $path_info ""; | |
if ($uri ~ "^(.+\.php)(/.*)") { | |
set $script $1; | |
set $path_info $2; | |
} | |
include /etc/nginx/fastcgi_params; | |
fastcgi_split_path_info ^(.+\.php)(.*)$; | |
fastcgi_pass 127.0.0.1:20001; | |
fastcgi_index index.php; | |
fastcgi_param SCRIPT_FILENAME $document_root$script; | |
fastcgi_param SCRIPT_NAME $script; | |
fastcgi_param PATH_INFO $fastcgi_path_info; | |
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment