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

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/テスト「これは完璧に動作します。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

関連情報