sites-available file looks like this:
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
#map $http_host $blogid {
# default 0;
# include /var/www/html/wp-content/uploads/nginx-helper/map.conf;
#}
map $uri $blogname{
~^(?P<blogpath>/[^/]+/)files/(.*) $blogpath ;
}
map $blogname $blogid{
default -999;
include /var/www/html/wp-content/uploads/nginx-helper/map.conf;
}
#
# Default server configuration
#
server {
listen 80;
listen 443 ssl http2;
server_name software-enabled.com www.software-enabled.com 139.59.187.99;
if ( $scheme = "http") {
return 301 https://$server_name$request_uri;
}
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
# ESSENTIAL : no favicon logs
location = /favicon.ico { log_not_found off; access_log off; }
# ESSENTIAL : robots.txt
location = /robots.txt { log_not_found off; access_log off; allow all; }
# ESSENTIAL : Configure 404 Pages
error_page 404 /404.html;
# ESSENTIAL : Configure 50x Pages
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# PERFORMANCE : Set expires headers for static files and turn off logging.
location ~* ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|r
ss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav
|bmp|rtf)$ {
access_log off; log_not_found off; expires 30d;
}
# SECURITY : Deny all attempts to access PHP Files in the uploads directory
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
#
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# Nginx Rewrite rules attempt by Ian W
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ ^/files/(.*)$ {
try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?f
ile=$1 ;
access_log off; log_not_found off; expires max;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 24h;
log_not_found off;
}
location ^~ /blogs.dir {
internal;
alias /var/www/html/wp-content/blogs.dir ;
access_log off; log_not_found off; expires max;
}
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}
# End of Rewrite Code!
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/wpms-error.log;
ssl_certificate /etc/letsencrypt/live/software-enabled.com/fullchain.pem; #
managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/software-enabled.com/privkey.pem;
# managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
#
# Virtual Host configuration for ianwaring.com/www.ianwaring.com
#
server {
listen 80;
listen 443 ssl http2;
server_name ianwaring.com www.ianwaring.com;
if ( $scheme = "http") {
return 301 https://$server_name$request_uri;
}
# root /ianwaring/;
# index index.php;
location ~ ^(/[^/]+/)?files/(?<rt_file>.+) {
try_files /wp-content/blogs.dir/$blogid/files/$rt_file /wp-includes/ms-f
iles.php?file=$rt_file ;
access_log off; log_not_found off; expires max;
}
# location / {
# try_files $uri $uri/ /index.php?$args;
# }
# location ~ ^/files/(.*)$ {
# try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?fi
le=$1 ;
# access_log off; log_not_found off; expires max;
# }
# location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
# expires 24h;
# log_not_found off;
# }
# location ^~ /blogs.dir {
# internal;
# alias /var/www/html/wp-content/blogs.dir ;
# access_log off; log_not_found off; expires max;
# }
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/wpms-error.log;
ssl_certificate /etc/letsencrypt/live/ianwaring.com/fullchain.pem; # managed
by Certbot
ssl_certificate_key /etc/letsencrypt/live/ianwaring.com/privkey.pem; # manag
ed by Certbot
}