[解決済み] nginxでproxy_passを経由してクエリ文字列パラメータを転送するには?
2022-04-27 01:25:27
質問
upstream apache {
server 127.0.0.1:8080;
}
server{
location ~* ^/service/(.*)$ {
proxy_pass http://apache/$1;
proxy_redirect off;
}
}
上記のスニペットは、URL に "service" という文字列が含まれるリクエストを別のサーバーにリダイレクトします(ただし、クエリパラメータは含まれません)。
解決するには?
からの proxy_pass のドキュメントを参照してください。
特殊なケースとして、proxy_passステートメントで変数を使用することがあります。リクエストされたURLは使用されず、ターゲットURLを自分で構築する責任があります。
ターゲットに $1 を使っているので、nginx は何を渡すか正確に教えてくれることを頼りにしています。 この問題は2つの方法で解決できます。 まず、proxy_passでURIの先頭を削除するのは簡単です。
location /service/ {
# Note the trailing slash on the proxy_pass.
# It tells nginx to replace /service/ with / when passing the request.
proxy_pass http://apache/;
}
また、正規表現の場所を使用したい場合は、引数を含めるだけです。
location ~* ^/service/(.*) {
proxy_pass http://apache/$1$is_args$args;
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン