Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

I’ve moved my old 12.04 Ubuntu Server instance, which contained a WordPress network on Apache, over to a new 16.04 instance running NginX. Along the way, to switch all sites in the network to https access.
The main website is called www.software-enabled.com and is working fine. I’ve enabled multisite, got all the other sites queued up, but am just trying to get the first of them set up correctly as an NginX virtual host. I’ve installed the NginX Helper Plugin. then set the sites-available file to the below (i’m using directory based multisite).
I’ve managed to get Lets Encrypt add the cert for www.ianwaring.com to the virtual host, as well as a separate cert for the main www.software-enabled.com website. All the https redirects work fine. www.software-enabled.com (the main site) works fine. But try as a can, I can’t get the Virtual host to display the site content from the WordPress network at all; i get either permission denied or the NginX welcome page.
Any ideas what the correct rewrite rule is to see the www.software-enabled.com/ianwaring content that lives behind www.ianwaring.com?
Any help or guidance gratefully received.
Ian W.
##
# 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
}
Edward Sitarski
1fd6b9d2a2b94ee4b3e8ee6d5e2587
Traceurity
fadecomic
Mollie Semmes
Will Walters
f4df2e98b9c74f7eb7f6a0629cf1c4
erel
fingers
fingers