私たちが管理するサブドメインをリッスンするリバース プロキシとして動作するように nginx を設定しようとしています。オンラインで見つかった例に従ってみましたが、ほとんどは機能しますが、1 つの例外が私にはわかりません。
以下のサーバー ブロックを検査します。
server{
listen *:80;
server_name placehold.com;
charset utf-8;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log error;
location / {
proxy_redirect 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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_pass http://google.com/;
}
}
google.com はこのテストのプレースホルダーです。
「http://placehold.com/テスト「これは完璧に動作します。Googleのエラーページにリダイレクトされ、ブラウザのURLはそのまま残ります。しかし、次のような裸のURLを入力すると、http://placehold.com/「その後、ブラウザが Google ホームページにリダイレクトされ、Google の URL がブラウザに明確に表示されます。
リバース プロキシで '/' URL と '/with/some/path' URL の URL を適切にマスクするにはどうすればよいですか?
答え1
プロキシは正常に動作しています。 Visitng はhttp://google.com
次を返します:
301 Moved Permanently
Location:https://www.google.com/
ブラウザはリダイレクトされていますhttp://www.google.com