Initial
This commit is contained in:
97
config/nginx.conf
Normal file
97
config/nginx.conf
Normal file
@@ -0,0 +1,97 @@
|
||||
server_tokens off;
|
||||
|
||||
index index.php index.html;
|
||||
charset UTF-8;
|
||||
default_type text/html;
|
||||
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_min_length 10;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg;
|
||||
|
||||
client_max_body_size 1024M;
|
||||
|
||||
# Force HTTPS on Heroku
|
||||
if ($http_x_forwarded_proto = "http") {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
include /app/config/nginx.d/*.conf;
|
||||
|
||||
# Force installation to /wp-admin/install.php so siteurl is always correct
|
||||
rewrite ^/wp/wp-admin/install.php(.*) $scheme://$http_host/wp-admin/install.php permanent;
|
||||
|
||||
# Rewrite rules to allow for an application-like wordpress directory structure
|
||||
if (!-e $request_filename) {
|
||||
rewrite ^/wp-admin$ $scheme://$http_host/wp-admin/ permanent;
|
||||
rewrite ^/(wp-.*.php)$ /wp/$1 last;
|
||||
rewrite ^/(wp-(content|admin|includes).*) /wp/$1 last;
|
||||
}
|
||||
|
||||
# Enable XML-RPC for WordPress
|
||||
rewrite ^/(xmlrpc\.php)$ /wp/$1 last;
|
||||
|
||||
# Hide often probed WordPress file so that finding out the WordPress install
|
||||
# and version would not be too easy
|
||||
location /wp/readme.html {
|
||||
return 404;
|
||||
}
|
||||
|
||||
location = /favicon.ico {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /ads.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# Block direct access to WooCommerce digital downloads. They can be accessed
|
||||
# via the X-Accel-Redirect mechanism for fast and protected downloads.
|
||||
location /wp/wp-content/uploads/woocommerce_uploads/ {
|
||||
internal;
|
||||
}
|
||||
|
||||
# Deny access to any other dot file
|
||||
# ~ matches using regular expression all requests that contain '/.'
|
||||
# anywhere in the URL, eg '/.htaccess' and '/wp-content/.htpasswd'.
|
||||
# This regex will override all non-regex rules, except ^~ rules due
|
||||
# how to Nginx location parsing and priorities works.
|
||||
location ~ \/\. {
|
||||
deny all;
|
||||
}
|
||||
|
||||
location ~* ^.+\.(css|js|ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|jpg|jpeg|gif|png|webp|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
|
||||
try_files $uri =404;
|
||||
expires max;
|
||||
add_header Pragma "public";
|
||||
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# Use actual file if exists, otherwise pass request to WordPress
|
||||
# Last rule: match all requests (= URLs that start with /)
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
}
|
||||
|
||||
# If front page is requested, skip all other regex and rewrite rules and
|
||||
# pass request directly to WordPress (= URLS that are exactly /)
|
||||
# Tip from https://www.scalescale.com/tips/nginx/nginx-location-directive/
|
||||
location = / {
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
}
|
||||
Reference in New Issue
Block a user