Configure multiple servers in a same domain in nginx

Viewed 713

Need to configure nginx to have multiple services in same domain.

my nginx.conf file as below

server {
   listen 80;
   listen [::]:80;
   server_name www.example.com example.com;
   access_log  /var/log/nginx/host.access.log  main;

   location ^~ /.well-known/acme-challenge/ {
     alias /var/www/acme-challenge/;
   }
   return 301 https://$host$request_uri;
}

server {
   listen 443;
   listen [::]:443;
   server_name www.example.com example.com;

   ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
   ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;
   ssl on;
   access_log  /var/log/nginx/host.access.log  main;
#
# # Enable server-side protection against BEAST attacks
#   ssl_protocols TLSv1.2;
#
   ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

   location ^~ /.well-known/acme-challenge/ {
     alias /var/www/acme-challenge/;
   }

   location /cms/ {
       proxy_pass http://cms-container:1337;
       rewrite ^/sdcms/?(.*)$ /$1 break;
       proxy_set_header   Host $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-Host $server_name;
       proxy_redirect     off;
   }

   location /chat {
       proxy_pass http://chat-container:3000;
       proxy_set_header   Host $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-Host $server_name;
       proxy_redirect     off;
   }

   location /auth {
       proxy_pass http://auth-container:8080;
       proxy_set_header Host $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-Host $server_name;
       proxy_redirect     off;
   }

   location /service {
       proxy_pass http://service-container:3000;
       proxy_set_header Host $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-Host $server_name;
       proxy_redirect     off;
   }

   location / {
       proxy_pass http://web:8060/;
       proxy_set_header   Host $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-Host $server_name;
       proxy_redirect     off;
   }
 }

Here, the baseurl (/) works fine. We are able to see other services pages(/auth, /cms, /chat, /services) on the initial load only. When we try to access the pages, it throws an error "page not found" from baseurl application.

0 Answers
Related