nginxでエラーページが表示されない

サーバー移行もありかと思ってnginxを試してます。

404ページが表示されなかったので、調査。 トップページが200 OKで返ってきちゃうのよね。OKじゃないっつの。

nginxでのエラーページの設定は

error_page 404 /404.html

みたいに書くらしい。

error_page 400 401 402 403 404 /40x.html

的なことが出来るそうな。500系をまとめたりすると便利かも。

でも、こいつをセットしても動かない。何故か。 初期設定(ubuntuのapt-getでinstallしたもの) だと、

location / {
    try_files $uri $uri/ /index.html;
}

みたいのがある。(コメントは省略してます なんか、怪しい。

どうやら、こいつはファイルが見つからない時の挙動を設定するものらしい。 =codeとすればステータスコードを返せるらしいので、書き換えてみた。

location / {
    try_files $uri $uri/ =404;
}

こんな感じにしてみた。

とりあえず動いた。 apacheとは随分雰囲気が違って面白いねー。

参考: nginx連載5回目: nginxの設定、その3 - locationディレクティブ - インフラエンジニアway - Powered by HEARTBEATS