2012-12-17 7 views
6

PHPリクエストを処理するnginxサーバがありますが、非標準ポート(ポート12345など)でリッスンするように設定されています。企業のIT部門が「いいえ」と言っているので、リスニングポートを変更することはできません。ポート上でnginxのボックスにwww.domain.com:80からの要求を転送し、データセンター内のプロキシがあり301非標準ポートをプロキシの背後で実行しているnginxマシンのリダイレクト

私は、いくつかの静的301は私が場所に置く必要があることをリダイレクトしていますが予期しない動作が起こっています。私はwww.domain.com/fooへ行くしようとすると、リダイレクトが起こるが、それはにブラウザを転送しようと

rewrite ^/foo$ /bar/foo/ permanent; 

サンプルはsite.confで「サーバー{}」ブロックをリダイレクトwww.domain.com:12345/bar/foo/

私の質問は、正しいポート(www.domain.com/bar/foo/)にユーザーをリダイレクトする方法を教えてください。

おそらくもっと良い質問は、私が求めていることを行う正しい方法は何でしょうか? 50以上のリダイレクトが必要ですが、リダイレクトごとに「場所」セクションを作成しないでください。

答えて

2

より明示的な書き換えを提供できます。以下試してください:^/foo$は非常に具体的なケースであるため、

rewrite ^/foo/ $scheme://www.domain.com:80/bar$request_uri permanent; 

私は、あなたの代わりに^/foo$^/foo/を使用することを意図していると仮定してきました。必要に応じて修正するだけです。

+1

ありがとう、ケビン。私は本当に意味があった^/foo /それは私がターゲットとしている特定のURL(マーケティングの要求ごとに)です。これはうまく動作し、少し修正しました。 ^/foo/$ scheme:// $ server_name:80/bar/permanent; – Jason

関連する問題