私は逆プロキシについて読んでいて、proxy_set_header Host $Host
がproxy_set_header Host $proxy_Host
よりも適切なのはいつかと思っています。私はいくつかの調査を行い、 この記事 で、ほとんどの場合、Hostを$ Hostに設定すると述べています。次に、nginxがデフォルトで$ proxy_hostになっているのはなぜですか?より具体的に理解するために、代わりに$ proxy_Hostを使用すると、リバースプロキシ設定 here (記事の下部)は引き続き機能しますか?
ありがとう
一般に、proxy_set_header Host proxy_Host
はデフォルトであるため、明示的に行う必要はありません。 proxy_pass
ディレクティブにあるものよりも何かotherでサーバーを呼び出す必要がある場合は、proxy_set_header something
でオーバーライドする必要があります。
server_name
ディレクティブにあったsame Hostをプロキシしたい場合、proxy_set_header $Host
を使用する機会があります。これは、実際のアプリケーションが別のポートまたは内部サーバーでホストされている場合によく発生します。
server {
listen 80;
server_name site.example.com;
location / {
proxy_set_header Host $Host;
proxy_pass http://localhost:8080;
}
}
アップストリームを呼び出す名前が実際のDNS名ではない場合、次のようなものがあります。
# 192.168.2.1 responds to site.example.com, but
# site.example.com doesn't actually resolve to 192.168.2.1
proxy_pass http://192.168.2.1;
proxy_set_header Host site.example.com;
別のケースとして、アップストリームに便利なDNS名が存在する「名前ベース」の仮想ホスティングがありますが、別の名前で呼び出したい場合があります。
proxy_pass http://Origin.example.com;
proxy_set_header Host site.example.com