web-dev-qa-db-ja.com

Nginxをリバースプロキシとして設定する方法

制御するサブドメインをリッスンするリバースプロキシとして動作するように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を適切にマスクするにはどうすればよいですか?

3

プロキシは正常に機能しています。 Visitng http://google.comは以下を返します:

301 Moved Permanently
Location:https://www.google.com/

ブラウザはhttp://www.google.comにリダイレクトされています

2
heavyd