ホームページ >バックエンド開発 >PHPチュートリアル >nginxドメイン名jump~~~rewrite、proxyの例

nginxドメイン名jump~~~rewrite、proxyの例

WBOY
WBOYオリジナル
2016-07-29 09:02:33952ブラウズ

数日前、私はフォーラムサーバーをセットアップし、会社の LAN に置きました。フォーラムはポート 9066 を使用し、ルーターでポート転送を行い、ドメイン名 bbs.xxx.com を会社のパブリックに向けました。ネットワーク IP にアクセスするときにユーザーにポート番号を入力させたくないので、会社の Web サーバーにジャンプして、bbs.xxx.com へのアクセス要求をすべて会社のサーバーに転送したいと考えています。私の最初の考えは nginx の書き換えを使用すると、プロセスは次のようになります。

server {listen 80;
server_name bbs.xxx.com;
rewrite "^/(.*)$" http://bbs.xxx.com:9066/$1 Break;
} }

のでアクセスしてくださいbbs .xxx.com を確認したところ、登録、ログイン、投稿等は正常でしたので、これで大丈夫かと思いましたが、問題が発生しました。ユーザーのブラウザはフォローし続けました。

9066 このポート番号にリーダーは非常に不満を感じたので、nginx のドキュメントを探したり、QQ グループの他の友人に尋ねたりしましたが、良い解決策はありませんでした。それで私はに切り替えました proxy_pass、この設定も非常に簡単です:

server {listen 80;
server_name bbs.xxx.com location /

}
}


次に bbs.xxx.com とポート番号にアクセスします。登録、ログイン、投稿はすべて正常に行われますが、しばらくすると再び問題が発生し、「
単一 IP は 1 日以内にのみ登録できます。」というメッセージが表示されます。 5回登録

」、何が起こったのか、ログを確認して分かりました

パブリックネットワークから送信されたすべてのリクエストはゲートウェイのIPアドレスであることが判明しました これで、単にプロキシを追加した後、それ以上の設定がなければ、nginxが実際のクライアントIPを判断せずに直接追加することがわかりました。ルーティング アドレスはリクエスト IP として使用されるため、上記の状況が発生します。分析後、nginx wiki を確認し、いくつかのエントリを追加しました: server {

listen 80;

server_name bbs.xxx.com; location /
proxy_set_header ホスト $host;
proxy_set_header 066/;

変更後、nginx をリロードしたところ、ログ内のソース IP がすでに実際のクライアント アドレスであることがわかりました。再登録、ログイン、投稿はすべて正常でした。何度も繰り返しましたが、問題は見つからず、お客様側では正常でした。

熱心にサポートしてくれた Sanmen Diesel に感謝します。

以下はインターネットで見つけた記事です。 http://www.beijus.info/?p=730&cpage=1 この記事の著者にも感謝します

この記事は「Story Sky」ブログからのものです。このソースは必ず保管してください http://storysky.blog.51cto.com/628458/486338

以上、nginxのドメイン名jump~~~rewriteとproxyの例を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。