Nginxを使用してサブホストを外部ホストにリダイレクトする


13

Nginxで同じサブネットにある別のサーバーにサブパスをリダイレクトする非常に単純なマップを作成する必要があります。

  • Nginxサーバー:192.168.0.2
  • Tomcatサーバー:192.168.0.3:8443

私はこれをサーバーセクションに入れようとしました

    location /tomcatapi/ {
        rewrite /tomcatapi/(.*) $1 break;
        proxy_pass http://192.168.0.3:8443;
    }

しかし、http://www.myservice.com/tomcatapi/にアクセスするのは500エラーページで、nginxログファイルには次のエラーがあります。

    the rewritten URI has a zero length

このconfに欠けているものは何ですか?

回答:


12

書き換え行を見てみましょう。

rewrite /tomcatapi/(.*) $1 break;

かっこで囲まれた部分(つまり、に続くすべて/tomcatapi/)を割り当て$1ます。これは、書き換えられたURIの唯一のコンテンツとして使用されます。

あなたの例では、の後/tomcatapi/に何もないので、書き換えは最終的に空になります。これがnginxがうめいていることです。

書き換えルールを変更した場合

rewrite /tomcatapi/(.*) /$1 break;

そうすれば、少なくとも/書き換え出力で常に終わることになります。


返信ありがとう
carlo.polisini

Tomcatサーバーのログには何と書かれていますか?
フラップ

私はエラーを見つけました、間違いはアプリがhttpsではなくhttpsでのみ利用可能であったことでした!したがって、構文は修正後すぐに機能し、httpをhttpsに置き換えるだけで機能します。
carlo.polisini
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.