ワイヤード・パンチ

IPアドレス直接入力でアクセスした際、意図しないサイトへリダイレクトしてしまうときの対処法。

WEBサーバをnginxで動かしている場合、ブラウザのアドレス入力欄に、そのサーバのIPアドレスを直打ちしてアクセスすると、nginxのデフォルトページに移動します。

しかし、本日IP直打ちをやってみると、先日の記事で新しく作成したサイトになぜか自動的にリダイレクトしてしまいました

というわけで今回は、IP直打ちでもとのnginxのデフォルトページに戻すための方法について。

広告

confファイルの名前が原因。

まずはFTPからサーバにして、nginxの設定ファイルが入っているディレクトリ「/etc/nginx/conf.d」まで移動します。

当サーバでは上記写真のように、各サイトごとにconfファイルを作るようにしています。

このファイルがどこから読み込まれるかというと、一つ上の階層に戻ったところにある「nginx.conf」にて、下記の行により読み込まれています。

include /etc/nginx/conf.d/*.conf;

該当するサイトがなかった場合は、default.confに書かれている処理、つまりnginxのデフォルトページへ移動するようになっているはずでした。

しかし、先程の行を見てみると、あくまでも全部のconfを読み込むという、単純なことしか書かれていません。

各confの読み込む順番までは指定されていなかったのです。

そして、ファイルの並び順を見てみるとアルファベット順であるため、default.confよりも先に、今回新たに作ったサイトであるaikt.wiredpunch.com.confが来ています。

aiktがdefaultよりも先に読み込まれてしまったために、デフォルトページに関する設定がaiktのものに置き換わってしまったのでしょう。

対処法。

ここまで見ていただいたなら、おそらくもうお気づきかもしれませんが、対処法は単純。

defaultがもっとも早く読み込まれるようにすることです。

defaultだけ別のところに移動して、さっきの行の上に一行足して個別に読み込むようにするなど、やり方はいろいろあると思います。

でも今回は、default.confの名前を_default.confに変えることで対処いたしました

つまり、aよりも先に並べられるような名前にしたということです。

confファイルの中身に変更はありません。

これで、aiktよりも先に_defaultに書かれているデフォルトページの設定が優先されることになり、IP直打ちしたときにnginxデフォルトページが表示されるようになりました。

なお注意点として、ファイル名変更後はnginxの再起動および、ブラウザのキャッシュクリアが必要です。

再起動しないと設定は反映されませんし、キャッシュクリアしないとリダイレクトが残ったままです。