naviat
4/29/2018 - 4:17 AM

Nginx Configuration with multiple port apps on same domain, with SSL.

Nginx Configuration with multiple port apps on same domain, with SSL.


# the IP(s) on which your node server is running. I chose port 3000.
upstream app_geoforce {
    server 127.0.0.1:3000;
}

upstream app_pcodes{
    server 127.0.0.1:3001;
}

#Point http requests to https
server {
    listen 0.0.0.0:80;
    server_name sub.domain.org;
    server_tokens off;
    return 301 https://$host$request_uri;
}

# the secure nginx server instance
server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/public.crt;
    ssl_certificate_key /etc/nginx/ssl/private.rsa;

    server_name sub.domain.org;
    access_log /var/log/nginx/myapp.log;
    error_log /var/log/nginx/myapp_error.log;
    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options

    location /favicon.ico { alias /home/ubuntu/img/favicon_rc.ico; }

    location / {
      # auth_basic "Restricted";
      # auth_basic_user_file /home/ubuntu/app/.htpasswd;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_set_header X-Ssl on;

      proxy_pass https://app_geoforce;
      proxy_redirect off;
    }

    location /pcodes/ {
      rewrite /pcodes/(.*)$ /$1 break;

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_set_header X-Ssl on;

      proxy_pass https://app_pcodes;
      proxy_redirect off;
    }
 }