site.conf.hbs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. upstream php {
  2. {{#each fastcgi_servers}}
  3. server {{this}};
  4. {{/each}}
  5. }
  6. server {
  7. listen {{port}};
  8. root "{{root}}";
  9. index index.php index.html index.htm;
  10. #
  11. # Generic restrictions for things like PHP files in uploads
  12. #
  13. include includes/restrictions.conf;
  14. #
  15. # Gzip rules
  16. #
  17. include includes/gzip.conf;
  18. #
  19. # WordPress Rules
  20. #
  21. {{#unless site.multiSite}}
  22. include includes/wordpress-single.conf;
  23. {{else}}
  24. include includes/wordpress-multi.conf;
  25. {{/unless}}
  26. #
  27. # Forward 404's to WordPress
  28. #
  29. error_page 404 = @wperror;
  30. location @wperror {
  31. rewrite ^/(.*)$ /index.php?q=$1 last;
  32. }
  33. #
  34. # Static file rules
  35. #
  36. location ~* \.(?:css|js)$ {
  37. access_log off;
  38. log_not_found off;
  39. add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate";
  40. }
  41. location ~* \.(?:jpg|jpeg|gif|png|ico|xml)$ {
  42. access_log off;
  43. log_not_found off;
  44. expires 5m;
  45. add_header Cache-Control "public";
  46. }
  47. location ~* \.(?:eot|woff|woff2|ttf|svg|otf) {
  48. access_log off;
  49. log_not_found off;
  50. expires 5m;
  51. add_header Cache-Control "public";
  52. # allow CORS requests
  53. add_header Access-Control-Allow-Origin *;
  54. }
  55. #
  56. # PHP-FPM
  57. #
  58. location ~ \.php$ {
  59. try_files $uri =404;
  60. fastcgi_split_path_info ^(.+\.php)(/.+)$;
  61. fastcgi_param QUERY_STRING $query_string;
  62. fastcgi_param REQUEST_METHOD $request_method;
  63. fastcgi_param CONTENT_TYPE $content_type;
  64. fastcgi_param CONTENT_LENGTH $content_length;
  65. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  66. fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  67. fastcgi_param PATH_INFO $fastcgi_path_info;
  68. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  69. fastcgi_param REQUEST_URI $request_uri;
  70. fastcgi_param DOCUMENT_URI $document_uri;
  71. fastcgi_param DOCUMENT_ROOT $document_root;
  72. fastcgi_param SERVER_PROTOCOL $server_protocol;
  73. fastcgi_param GATEWAY_INTERFACE CGI/1.1;
  74. fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
  75. fastcgi_param REMOTE_ADDR $remote_addr;
  76. fastcgi_param REMOTE_PORT $remote_port;
  77. fastcgi_param SERVER_ADDR $server_addr;
  78. fastcgi_param SERVER_PORT $server_port;
  79. fastcgi_param SERVER_NAME $host;
  80. fastcgi_param HTTPS $fastcgi_https;
  81. fastcgi_param REDIRECT_STATUS 200;
  82. fastcgi_index index.php;
  83. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  84. fastcgi_pass php;
  85. fastcgi_buffer_size 64k;
  86. fastcgi_buffers 32 32k;
  87. fastcgi_read_timeout 1200s;
  88. proxy_buffer_size 64k;
  89. proxy_buffers 32 32k;
  90. proxy_busy_buffers_size 256k;
  91. }
  92. }