ホームページ >バックエンド開発 >PHPチュートリアル >nginxドメイン名jump~~~rewrite、proxyの例
数日前、私はフォーラムサーバーをセットアップし、会社の 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;
} }
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