今日は、サーバーのポート 80 が IP 経由でアクセスできないことに気づき、言葉を失いました。他のポートは正常でした。ファイアウォールを使用して。そこでコンピューター室に問い合わせると、サーバーに登録されていないドメイン名があり、中国電信から何度も通知を受け、IP ポートがブロックされたという、ぎこちない返事が返ってきた。 。 。 。閉まっているんです。 。 。おかしなことに、重要なのは、このドメイン名 TMD が私のものではないということです
いくつか考えた結果、nginx 設定に抜け穴があるようで、サーバーに解決されたドメイン名が通常どおりに要求されることがわかりました。空白のページ、HTTP ステータス コードは 200 です。
主に、次の設定コードが欠落していることが原因です: nginx バージョン 1.8.0
<code><span>server</span> { listen <span>80</span> default_server; server_name _; <span>return</span><span>403</span>; }</code>
により、すべての未設定のserver_name が 403 エラーを返します
これまでにこの設定を Nginx に追加したことはありませんが、これに再び遭遇したことはありません。このような問題が発生し、別のサーバーでテストしましたが、このコードがなくても正常に解析してリクエストすることは不可能です。
補足:
色々調べてみたところ、この種の問題にはNginx独自の444ステータスコードを使うのが一番良さそうです
<code><span>server</span> { listen <span>80</span> default_server; server_name _; access_log off; <span>return</span><span>444</span>; }</code>
このように、ブラウザ側でアクセスすると自動的にプロンプトが表示されます。アクセスできないことをユーザーに通知します
CURL を通じて取得された結果 (出力は HTTP エラー メッセージです)
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });上記では、関連する側面も含めて、Nginx の悪意のあるドメイン名解決を防ぐ方法を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。