
外部ネットワークからアクセスできるローカル Web アプリが 2 つありますが、外部 IP は 1 つだけです。両方の Web アプリとも 443 ポートを使用しますが、これは変更できません。したがって、タスクは、第 3 レベル ドメインに基づいて着信要求を転送できるように nginx を構成することです。Web アプリが 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 に転送するようにします。これを実現する方法を教えてください。現時点では、Web アプリの 1 つへの単純な転送のみを構成できました。
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;
}
}