NginxでHello,World
debian環境にNginxのインストールまでがうまくいったので、次は任意のhtmlファイルを配置してそれを表示させるようにしてみます。
実際にやってみるにあたっては設定ファイルの意味などをだいぶ調べたりしているのですが、このブログ自体はかなり雑に書いているので同じことをやりたい人の参考にあまりならないかもしれませんがお許しください。俺メモに近いです。
環境
さくらのVPSに作ったDebian9(stretch)
設定ファイルの場所
パッケージシステムからNginxをインストールすると、設定ファイルは通常ここにできる。このファイルを開いて中を見てみる。
/etc/nginx/nginx.conf
設定ファイルの中身
とにかく今表示されているindex.htmlファイルがどこにあるかを知りたいのだからが、ファイル内にはとくにindex.htmlに関する記述はないように見える。なのでこの設定ファイルの中身について理解すべく色々調べてみた。 設定ファイルは、Nginxのモジュールのカテゴリごとに分けて記述する必要があり、大きく分けて4つのカテゴリがある。
- coreモジュール
- eventモジュール
- httpモジュール
- mailモジュール(上の画像にはない)
eventモジュールの設定はevents{}、httpモジュールの設定はhttp{}内に書いてある。(coreモジュールの設定は{}でくくらず先頭にまとめて書くようだ。)
ここでhttp{}内の下の方に以下のような記述がある。
include /etc/nginx/conf.d/*.conf;
include ディレクティブにファイル名を記述することで、指定したファイルに書かれた設定を読み込むことができる。
ここでは/etc/nginx/conf.d
フォルダ以下にあるすべての.confファイルを読み込むという意味になる。
なので、/etc/nginx/conf.d
フォルダ以下にある.confファイルの中身を確認してみる。
default.conf
/etc/nginx/conf.d
フォルダ以下にあるdefault.confファイルを開く。
サーバーごとの設定(server{}セクション)が書かれているっぽい。 このserver{}セクション内にlocation{}セクションが存在する。そしてrootの場所とindex.htmlの設定が書かれている。
server { 〜 略 〜 location / { root /usr/share/nginx/html; index index.html index.htm; } 〜 略 〜 }
locationの中身についてはいろいろ調べてそこそこ大変だったが、調べたことを全部書くと膨大な量になるので省略。 以下のサイトが参考になったので、default.confファイルの記述の中身についてはここを読むと良い。
nginx連載3回目: nginxの設定、その1 - インフラエンジニアway - Powered by HEARTBEATS
nginx連載4回目: nginxの設定、その2 - バーチャルサーバの設定 - インフラエンジニアway - Powered by HEARTBEATS
nginx連載5回目: nginxの設定、その3 - locationディレクティブ - インフラエンジニアway - Powered by HEARTBEATS
で結論としてはlocationの設定をURIのパス毎に分けて書くことで、おのおの任意のページを表示できる。 なので、既存の locationセクションのしたにもう1つ任意のindex.html を表示するためのlocationの設定を、既存のlocationの設定の下に追加する。
location /reiwa { root /usr/share/nginx/html/reiwa; index index.html index.htm; }
表示
アクセスしてみたら表示された。