Переадресация NGINX по доменному имени 3-го уровня

Переадресация NGINX по доменному имени 3-го уровня

У меня есть два локальных веб-приложения, которые должны быть доступны из внешней сети, но только один внешний IP. Оба веб-приложения используют порт 443, который нельзя изменить. Поэтому задача состоит в том, чтобы настроить nginx таким образом, чтобы он мог пересылать входящие запросы на основе домена 3-го уровня. Допустим, мои веб-приложения находятся на 192.168.1.55 и 192.168.1.65. Мой публичный IP-адрес — 9*.23*.15*.12, и я настроил 2 записи DNS A site1.example.com и site2.example.com, которые обе сопоставлены с моим публичным IP-адресом. В идеальном мире я хочу, чтобы nginx пересылал все входящие запросы с $server_name = site1.example.com на 192.168.1.55 и с $server_name = site2.example.com на 192.168.1.65. Пожалуйста, посоветуйте, как этого можно добиться. На данный момент мне удалось настроить только простую переадресацию на одно из веб-приложений.

server {
    listen 443 ssl http2;
    server_name site1.example.com;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/blog.zeroxzed.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/blog.zeroxzed.ru/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    location /.well-known/acme-challenge/ {
    root /web/sites/example.com/www/;
    }

    location / {
    proxy_pass https://192.168.1.55;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }
}

Связанный контент