制御するサブドメインをリッスンするリバースプロキシとして動作するように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/test 」のようなURLにアクセスすると、これは完全に機能し、Googleエラーページにリダイレクトされ、ブラウザのURLはタイプのままになります。しかし、「 http://placehold.com/ "」のような裸のURLを入力すると、ブラウザがGoogleホームページにリダイレクトされ、GoogleURLがブラウザに明確に表示されます。
リバースプロキシを取得して、「/」URLと「/ with/some/path」URLのURLを適切にマスクするにはどうすればよいですか?
プロキシは正常に機能しています。 Visitng http://google.com
は以下を返します:
301 Moved Permanently
Location:https://www.google.com/
ブラウザはhttp://www.google.com
にリダイレクトされています