Reputation: 583
Trying to figure out how I could setup NGINX to serve several sites on the same host, with subfolder unified config.
trying to have mydomain.com/blue
and mydomain.com/red
serving 2 different NodeJS websites.
So far I did this :
2 configs, which are in sites-availables
with symlink in sites-enables
they both have the same config, unless for the upstream, where I change the name and the port.
# path: /etc/nginx/sites-available/blue.conf
# Server
upstream blue {
server 127.0.0.1:1337;
}
server {
# Listen HTTP
listen 80;
server_name mydomain.com;
# Redirect HTTP to HTTPS
return 301 https://$host$request_uri;
}
server {
# Listen HTTPS
listen 443 ssl http2;
server_name mydomain.com;
# SSL config
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain.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
# Static Root
location / {
root /var/www;
}
# API and Admin
location /blue/ {
rewrite ^/blue/?(.*)$ /$1 break;
proxy_pass http://blue/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass_request_headers on;
}
}
For the other conf, it's the same with those differences :
# Server
upstream red {
server 127.0.0.1:2160;
}
# API and Admin
location /red/ {
rewrite ^/red/?(.*)$ /$1 break;
proxy_pass http://red/;
...
}
It is currently not working, after setting up second site and relaoding nginx, I got a 403 forbidden
or the first one, the second one works tho
Any clue ?
Upvotes: 1
Views: 917
Reputation: 583
Finally fixed the issue.
The problem is that I had 2 conf, both with the same domain, each of them had their own server block.
Had to put all subfolders location directives in an unique server block, instead of one per site.
Upvotes: 0