同じサブネットにある別のサーバーにサブパスをリダイレクトする非常に単純なマップをNginxで作成する必要があります。
これをサーバーセクションに入れてみました
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で何が欠けていますか?
書き換え行を見てみましょう:
rewrite /tomcatapi/(.*) $1 break;
括弧内のビット(つまり、/tomcatapi/
の後のすべて)を取得します。これは$1
に割り当てられ、書き換えられたURIの唯一のコンテンツとして使用します。
あなたの例では、/tomcatapi/
の後には何もないので、書き換えは最終的に空になり、これがnginxがうめくものです。
書き換えルールを次のように変更した場合
rewrite /tomcatapi/(.*) /$1 break;
その場合、書き換え出力には常に少なくとも/
が含まれます。