1. Install NGINX:
sudo apt update
sudo apt install nginx -y
  1. Set SSL Certificates
sh-5.2$ sudo mkdir -p /etc/nginx/ssl
sh-5.2$ sudo cp certs/* /etc/nginx/ssl/
sh-5.2$ sudo ls -l /etc/nginx/ssl/
total 32
-rw-r--r--. 1 root root 3830 Apr 13 15:08 ca-bundle.crt
-r--r--r--. 1 root root 1911 Apr 13 15:08 ca.crt
-r--r--r--. 1 root root 1919 Apr 13 15:08 mid-ca.crt
-rw-r--r--. 1 root root 6082 Apr 13 15:08 server-bundle.crt
-rw-------. 1 root root 1704 Apr 13 15:08 server.key
-rw-r--r--. 1 root root 2252 Apr 13 15:08 server_001.crt
-rw-------. 1 root root 3363 Apr 13 15:08 server_001.pfx
sh-5.2$
  1. Create the NGINX Load Balancing Config

Edit /etc/nginx/nginx.conf or (preferably) add a new file in /etc/nginx/conf.d/iis-loadbalancer.conf:

upstream iis_backend {
    server d11-api-demo1.gcs.cloud:443;
    server d11-api-demo2.gcs.cloud:443;
}

server {
    listen 443 ssl;
    server_name d11-alb-ngx01.gcs.cloud;

    ssl_certificate     /etc/nginx/ssl/server-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        proxy_pass https://iis_backend;  # Preserves the full URI path
        proxy_ssl_verify off;

        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-Proto $scheme;
    }
}

server {
    listen 80;
    server_name d11-alb-ngx01.gcs.cloud;
    return 301 https://$host$request_uri;
}
  1. Restart NGINX
sudo nginx -t   # test config
sudo systemctl restart nginx
  1. TIPS, if the backend servers are IIS, set the Load Balancer’s FQDN


See also:

Deploy a Amazon Linux 2023

NGINX Container - Secure Web Page

NGINX Container - Load Balancer

Haproxy Container - Load Balancer