2016-07-13 27 views
1

URL www.example1.comに対してamazon ec2でnginxを設定しました。私はブラウザでURLを変更することなく、青ホスト(シュレッドホスティング)でホストされている私のブログホストwww.example2.com/blogにwww.example1.com/blogを代理人に渡す必要があります。出来ますか ?外部URLへのnginxプロキシのパス

Iは、任意の運なし

 location /blog{ 
      proxy_pass http://www.example2.com; 
      proxy_set_header Host $http_host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

}

ような多くの異なる組み合わせを試してみました。

nginxは、共有ホストがIPではなくドメイン名を認識できないため、ドメインの代わりにIPにマップしようとしていることがログに記録されています。

すべての入力/ヘルプは本当に感謝します。

+1

'' proxy_set_headerホスト$ http_host; ''を '' proxy_set_headerホスト$ proxy_host; ''に変更してみてください – Lution

+0

ありがとうございました!それは完全に動作します!私はこれに関連する別の質問をすることが許されているかどうかはわかりません。 http:// example1.comを書き込むとリダイレクトされませんが、http:// www.example1.comとwww.example1.comではリダイレクトされます。私がそうすることが許されなければ、私の謝罪。 –

答えて

1

私はここで答えを出します。

あなたが遭遇する問題は、proxy_set_header Host $http_host;の$ http_hostが元のリクエストヘッダーでホストを使用するためですが、本当に必要なのはwww.example2.comのホストです。 $ proxy_hostはproxy_passディレクティブでホストを使用します。 proxy_passディレクティブで指定されているプロキシサーバーの

http://nginx.org/en/docs/http/ngx_http_proxy_module.html 下$ PROXY_HOST

名とポートで組み込み変数にを参照してください。

そして、それはexample1.comしかしwww.example1.comのために働いていない理由は、私は推測するあなたがserver_nameディレクティブで値example1.comを入れていなかったためです。

+0

詳細な回答ありがとうございます。私はサーバのようにexample1.comを書こうとしました。 server_name example1.com www.example1.com; しかし、www.example1.comはwww.example2.comからコンテンツを取得します。しかし、http:// example1.comは依然としてオリジナルのコンテンツを提供しています。 –

+0

@AmrishPatelサーバーブロック全体をペーストする – Lution

関連する問題