upstream {{ pj }} { {{ upstream }} } server { listen 80; listen 443 ssl; server_name {{ server_name }}; index index.php index.html index.htm default.php default.htm default.html; root /data/wwwroot/{{ server_name }}/web/; access_log /data/logs/web/{{ server_name }}-access-json.log json; error_log /data/logs/web/{{ server_name }}-error.log; error_page 502 /502.html; underscores_in_headers on; location / { try_files $uri $uri/ /index.php?$query_string; if ($request_method = OPTIONS) { add_header 'Access-Control-Allow-Origin' "$http_origin"; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, PATCH, DELETE, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,Cache-Control,Keep-Alive,X-Requested-With,If-Modified-Since'; add_header 'Content-Length' 0; add_header 'Content-Type' 'text/plain; charset=UTF-8'; return 204; } } location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass {{ pj }}; fastcgi_index index.php; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { set $real_script_name $1; set $path_info $2; } fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; include fastcgi_params; } {{ include }} location ~ ^/(\.user.ini|\.htaccess|\.git|\.project|LICENSE|README.md) { return 404; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 12h; access_log off; } }