WordPressを使おうと思っても80番ポートだけ外部からアクセスできない問題

症状

Nginxで80番でWordPress、8080番で適当なhtmlファイルにアクセスするように設定したら、

  • LAN内からローカルIPアドレス「192.168.0.5」→アクセスできる
  • LAN内から80番以外のポート「192.168.0.5:8080」→アクセスできる
  • LAN外からグローバルIPアドレスまたはドメイン名「ppdr.softether.net」→アクセスできない
  • LAN外から80番以外のポート「ppdr.softether.net:8080」→アクセスできる

チェックしたこと

ファイアウォールを確認

ファイアウォールが有効になっていて80番ポートをブロックしていないか確かめた。でもファイアウォール自体入っていなかった。

nginxが正しく80番ポートを受けているか

nginxが正しく機能しているか確認した。ポートを待ち受けているプロセスを見るには、

$ sudo netstat -ltupn
稼働中のインターネット接続 (サーバのみ)
Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1188/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1188/nginx: master

いた。そもそもLAN内からはアクセスできるから待ち受けてはいる。

DDNSが正しく機能しているか

DNSのチェックサービスを利用してDNSと自宅のサーバーのグローバルIPが正しく結びついているか確認した。大丈夫だった。

ブラウザのキャッシュをクリア

LAN外からのアクセスにはスマホを使っていた。同じURLで何度か試しているので前回読み込んだ結果がキャッシュに保存されているのかもしれない。chromeの「︙」から「履歴」→「閲覧データを削除…」→「キャッシュされた画像とファイル」にチェックを入れてデータを消去。

これをやることで表示のされ方が変わった。もう一歩。

WordPressの設定

これ重要。

WordPressの初期設定はローカルでの接続で行っていたので、サイトのURLが「http://192.168.0.5」になっていた。WordPressの「設定」→「一般」から「 WordPress アドレス (URL) 」と「サイトアドレス(URL)」を「http://ppdr.softether.net」に変えた。

これで正しく表示できるようになった!!
よかったよかった。