web-dev-qa-db-ja.com

Nginx Reverse Proxyはリダイレクトしませんか?

更新

私はこれに絞り込むと思う:

何らかの理由で、リクエストをプロキシするかどうかを判断しようとする場合、ホスト名はNginxにとって重要です。ホスト名がgit.example.comに設定されている場合、リクエストは処理されないように見えますが、203.0.113.2に設定されている場合は処理されます。ホスト名が重要なのはなぜですか?

ここでNginxの問題を報告しました

元の質問

リバースプロキシのIPアドレスをブラウザバーに直接入力すると、リダイレクトが実行されます。

この場合、203.0.113.2と入力し、203.0.113.1へのリダイレクトが実行されます。

/etc/hostsエントリ203.0.113.2 git.example.comを介して解決されるURLを使用する場合、リダイレクトの結果生じるページの代わりに「Ngnixページへようこそ」が表示されます。

IIUCでは、ブラウザは最初にIPアドレス203.0.113.2をURLエントリgit.example.comごとに解決するため、両方ともプロキシ構成が呼び出されるはずですが、そうではありません。

これは構成です:

server {
    listen 80;
    server_name git.example.com;

    proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

    location / {
        proxy_pass http://203.0.113.1:3000;
    }
}

興味深いのは、たとえば次の場所に移動できることです。

http://203.0.113.2/issues

その後、203.0.113.2git.example.comで変更すると、Nginxsの「404 not found」ページが表示されます。

2
Ole

昨日、nginxとgogsの設定をいじることができずに数時間過ごしました。

うまくいったのは、gitサブドメインのドメイン名のDNS構成にAレコードを設定して、正しいIPアドレスを指すようにすることでした。

1
Artyom2033