ロードバランサーとして機能するサイトがあります。サイトA
1つのドメインしか持てない他のサイトがあります。だから私がそれらにリダイレクトすると、ホスト名が見つかりませんと表示されます。
したがって、ヘッダーを手動で設定すると、そのサイトのみが表示されます。
proxy_set_header Host xxxx
選択したサーバーアドレスに設定するにはどうすればよいですか?このように、各再ルーティング要求には、異なる適切なホストヘッダーがあります。
他の2つのサイトがホストヘッダーではなくurlに基づいて機能する場合は問題ありません。
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
error_log logs/error.log debug;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream myapp1 {
#server localhost:3333;
server www.asd.com:80;
}
server {
listen 80;
location / {
proxy_set_header Host $upstream_addr; // should become somehow www.asd.com right now this code doesn't work
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://myapp1;
}
}
}
サーバー
—
Muhammad
www.asd.com:80
が選択されたときにホストヘッダーをwww.asd.comにしたい
または、書き方がある
—
Muhammad Umer 2015年
if(server1) than host = a;
場合if(server2) than host = b;
重要なのは、適切なホストヘッダーは、私の意見では、クライアントから取得するすべてのものであるべきだということです。クライアントがwww.asd.comを要求した場合、それがホストヘッダーの内容です。これは、必要に応じてバックエンドで絶対URLを正しく生成し、Cookieなどに適切なドメインを設定するのに役立ちます。何をしようとしても、おそらくそれを間違った方法で見ています。
—
FlorinAsăvoaie2015年
クライアントもミドルサーバーも私です。
—
Muhammad Umer 2015年
$server_addr
どういうわけか127.0.0.1はなぜですか?