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; } 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; } } }