web-dev-qa-db-ja.com

Nginxに元のホスト名を転送させる方法

Apacheサーバーのロードバランサーとして機能するnginxサーバーがあります。私はサブドメインを使用しており、コードはHTTP_Host値に依存して正しいタスクを実行しています。

http://get.example.comと言うリクエストをすると、転送されると、ApacheのHTTP_Hostはexample.comになります。

私の質問は、元のリクエストと同じままにするにはどうすればよいですか?

これが私のnginx設定です:

upstream example.com {
  server 192.168.2.1:8909 weight=2;
  server 192.168.2.2:8909 weight=1;
  server 192.168.2.3:8909 weight=1;
}

server {
  listen 80;
  location / {
    proxy_pass  http://example.com;
  }
}

サブドメインごとに1つずつ、複数のproxy_passを追加しようとしましたが、機能しないようです。

3
Ibu

HTTP Hostヘッダーを渡す必要があります。これを関連するlocationに追加します。

proxy_set_header Host $Host;
5
Michael Hampton