2017-07-13 6 views
0

今このソリューションを探していて、かなり近いと思います... 別のポートでWebページを実行している5つのVMがあります。簡潔にするために、8080から8484と言うことができます。私はそれらのすべてが127.0.0.1とそれぞれのポートで聞くようにしたいと思います。また、nginxがユーザーをこれらの内部サイトにリダイレクトするランディングページにhttpsとパスワードで保護されたフロントとして機能するようにします。nginxで複数のポートにサービスを提供

server { 
listen 443 ssl http2; 
ssl_certificate /etc/nginx/ssl/home.crt; 
ssl_certificate_key /etc/nginx/ssl/home.key; 
ssl_dhparam /etc/nginx/ssl/dhparam.pem; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_prefer_server_ciphers on; 
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 
ssl_session_cache shared:SSL:10m; 
ssl_session_tickets off; # Requires nginx >= 1.5.9 
add_header X-Frame-Options SAMEORIGIN; 
add_header X-Content-Type-Options nosniff; 
root /usr/share/nginx/html; 
index index.html index.htm; 
client_max_body_size 101M; 
auth_basic "Login required"; 
auth_basic_user_file /etc/nginx/htpasswd; 

    location /server1 { 
    proxy_pass http://127.0.0.1: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; 
} 

    location /server2 { 
    proxy_pass http://127.0.0.1:8181; 
    proxy_set_header Host \$host; 
    proxy_set_header X-Real-IP \$remote_addr; 
    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 
} 

....

だからこれは、ユーザーのために私を促し合格し、適切なページにリダイレクトされますが、そのポート上でホストされているが、私はのために/サーバー1で許可されていないホストを言ってエラーを取得します\ 127.0.0.1として無効なHTTP_HOSTヘッダーが無効です。

これも可能ですか?サーバーは、さまざまなフレームワーク、Django、Apache、Tomcatを実行しています。

+0

なぜ、バックスラッシュをホストヘッダーのプレフィックスとして使用しますか? – Remco

+0

Host = "Host" ":" host [":" port] – Remco

+0

\プレフィックスは必要ですか? – JohnFowles

答えて

0
server { 
listen 443 ssl http2; 
ssl_certificate /etc/nginx/ssl/home.crt; 
ssl_certificate_key /etc/nginx/ssl/home.key; 
ssl_dhparam /etc/nginx/ssl/dhparam.pem; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
ssl_prefer_server_ciphers on; 
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 
ssl_session_cache shared:SSL:10m; 
ssl_session_tickets off; # Requires nginx >= 1.5.9 
add_header X-Frame-Options SAMEORIGIN; 
add_header X-Content-Type-Options nosniff; 
root /usr/share/nginx/html; 
index index.html index.htm; 
client_max_body_size 101M; 
auth_basic "Login required"; 
auth_basic_user_file /etc/nginx/htpasswd; 

    location /server1/ { 
    proxy_pass http://127.0.0.1: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; 
} 

    location /server2/ { 
    proxy_pass http://127.0.0.1:8181/; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 
関連する問題