all repos — wp-ffpc @ 74869fa77f6bd47a6c3edc98bee79c8f423539d9

wp-ffpc-nginx-sample.conf (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
http {

	# memcached servers, generated according to wp-ffpc config
	upstream memcached-servers {
MEMCACHED_SERVERS
	}

	# PHP-FPM upstream; change it accordingly to your local config!
	upstream php-fpm {
		server 127.0.0.1:9000;
	}

	server {
		## Listen ports
		listen 80;
		listen [::]:80;

		# use _ if you want to accept everything, or replace _ with domain
		server_name _;

		# root of WordPress
		root SERVERROOT;

		# set up logging
		access_log /var/log/nginx/SERVERLOG.access.log;
		error_log /var/log/nginx/SERVERLOG.error.log;

		## PHP5-FPM
		location ~ (\.php) {
			# these settings are usually in fastcgi_params

			fastcgi_index                           index.php;
			fastcgi_connect_timeout                 10;
			fastcgi_send_timeout                    180;
			fastcgi_read_timeout                    180;
			fastcgi_buffer_size                     512k;
			fastcgi_buffers                         4       256k;
			fastcgi_busy_buffers_size               512k;
			fastcgi_temp_file_write_size            512k;
			fastcgi_intercept_errors                on;
			fastcgi_split_path_info ^(.+\.php)(/.*)$;
			fastcgi_keep_conn			on;

			fastcgi_param	QUERY_STRING			$query_string;
			fastcgi_param	REQUEST_METHOD			$request_method;
			fastcgi_param	CONTENT_TYPE			$content_type;
			fastcgi_param	CONTENT_LENGTH			$content_length;
			fastcgi_param	SCRIPT_FILENAME			$document_root$fastcgi_script_name;
			fastcgi_param	SCRIPT_NAME				$fastcgi_script_name;
			fastcgi_param	REQUEST_URI				$request_uri;
			fastcgi_param	DOCUMENT_URI			$document_uri;
			fastcgi_param	DOCUMENT_ROOT			$document_root;
			fastcgi_param	SERVER_PROTOCOL			$server_protocol;
			fastcgi_param	GATEWAY_INTERFACE		CGI/1.1;
			fastcgi_param	SERVER_SOFTWARE			nginx;
			fastcgi_param	REMOTE_ADDR				$remote_addr;
			fastcgi_param	REMOTE_PORT				$remote_port;
			fastcgi_param	SERVER_ADDR				$server_addr;
			fastcgi_param	SERVER_PORT				$server_port;
			fastcgi_param	SERVER_NAME				$server_name;
			fastcgi_param	PATH_INFO				$fastcgi_path_info;
			fastcgi_param	PATH_TRANSLATED			$document_root$fastcgi_path_info;
			fastcgi_param	REDIRECT_STATUS			200;

			# uncomment these for HTTPS usage
			#fastcgi_param	HTTPS					$https if_not_empty;
			#fastcgi_param	SSL_PROTOCOL			$ssl_protocol if_not_empty;
			#fastcgi_param	SSL_CIPHER				$ssl_cipher if_not_empty;
			#fastcgi_param	SSL_SESSION_ID			$ssl_session_id if_not_empty;
			#fastcgi_param	SSL_CLIENT_VERIFY		$ssl_client_verify if_not_empty;

			fastcgi_pass php-fpm;
		}

		location / {
			try_files $uri $uri/ @memcached;
		}

		# try to get result from memcached
		location @memcached {
				default_type text/html;
				set $memcached_key DATAPREFIX;
				set $memcached_request 1;

				# exceptions
				# avoid cache serve of POST requests
				if ($request_method = POST ) {
						set $memcached_request 0;
				}

				# avoid cache serve of wp-admin-like pages, starting with "wp-"
				if ( $uri ~ "/wp-" ) {
						set $memcached_request 0;
				}

				# avoid cache serve of any URL with query strings                                                                       
				if ( $args ) {
					set $memcached_request 0;
				}

				LOGGEDIN_EXCEPTION

				COOKIES_EXCEPTION

				if ( $memcached_request = 1) {
						RESPONSE_HEADER
						memcached_pass memcached-servers;
						error_page 404 = @rewrites;
				}

				if ( $memcached_request = 0) {
						rewrite ^ /index.php last;
				}
		}

		## rewrite rules
		location @rewrites {
				add_header X-Cache-Engine "";
				rewrite ^ /index.php last;
		}

	}
}