Nginx(Webサーバー)をEnvaderで立ててみた。
今回はWebサーバーの中でも現在シェア率トップのNginx
について学習したので、その振り返りとまとめです。
利用した環境は、オンライン環境でLinuxについて学習ができるサービス、Envader
です。
環境構築が不要なため、すぐに利用できて便利なので、いつもお世話になっています。
Envader
について気になる方は、リンクを貼っておきますので参考にどうぞ。
この記事で分かること
- Nginxの特徴
- Debian環境でのNginxのインストール方法
- Nginxの起動方法
- Nginxでのドキュメントルートの確認方法
- 設定ファイルを変更した際の処理方法
参考にさせていただいた記事一覧
nginxの使い方と機能を徹底解説!nginxとApacheの違いやメリットを比較。ダウンロードの手順と設定方法も確認
NginxとApacheをわかりやすく比較、Nginxが「絶対王者」のApacheを超えたワケ
Nginxとはどんなソフトウェア?Apacheとは何が違うのか
Nginxの特徴
静的コンテンツの表示、リバースプロキシ、ロードバランサーとしての動作を得意としている。
Nginxはたくさんのリクエストを並列で処理する設計で作られているため、クライアントからの大量のリクエストがあった場合にも、メモリ消費量を抑えながら効率よくリクエストをさばく能力を備えています。
ただし、CPUを使用する処理が苦手なため、動的な処理は苦手なようで、Web3層構成
のようなWebサーバーとAPサーバーとの兼用には向いていない。
3層構成にしようとした場合には、Webサーバーとは別にAPサーバーも用意する、といった構成にしないといけません。
あくまで静的なサイトを表示させるような場合に効果を発揮するような設計になっているようです。
つまり、毎回同じ内容の表示を必要とするサイトにはNginxが向いているのですが、クライアントに応じて表示を変更するようなショッピングサイトなどにはNginxは向いていない傾向にある。ということになりますね。
あくまでショッピングサイトは例ですが。。。
Debian環境でのNginxのインストール方法
今回利用させていただいているEnvader
では、OSの環境がDebianなので、環境が違う方は適宜置き換えて考えていただければありがたいです。
Nginxインストールコマンド
sudo apt install nginx
# または-yオプションをつけて質問を受けないようにするのもあり。
sudo apt install nginx -y
これで自分の環境にNginxがインストールされます。
正常にインストールされたかの確認と、バージョンの確認をしてみる。
# -vコマンドでバージョンの確認
nginx -v
nginx version: nginx/1.10.3
ちゃんとインストールができました。
Nginxの起動方法
続いてはNginxを起動させてみます。
sudo nginx
これで起動できるみたいです。
他には
sudo systemctl start nginx
でも起動できるみたいですが、今回はsudo nginx
だけで起動させる事ができました。
Nginxでのドキュメントルートの確認方法
ApacheやNginxなどのWebサーバーには、ドキュメントルートという表示させたいHTMLファイルを置いておくディレクトリが存在します。
そのドキュメントルートがどこに設定されているのかを確認する方法は、/etc/nginx/sites-enabled/default
を参照することで確認できます。
このファイルの中に、ドキュメントルートに関して記述がされています。
このファイルをvim
やcat
コマンドで開くと、root
と書いてある場所にドキュメントルートが記載されています。
ちなみに見るべきところは、Default server configration
と書かれた所の下の、server {
の下のroot
です。
さらに下に行くとVirtual Host configration
と書かれたところにもroot
とあるのですが、デフォルトのサーバーの設定ではないため、こちらではありません。
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html; #これがドキュメントルート
設定ファイルを変更した際の処理方法
上記で確認したドキュメントルートを変更することで、ファイルを読み込む場所を変更する事ができます。
注意点として、設定ファイルを変更した場合には、必ず
nginx -s reload
コマンドで設定ファイルを再読み込みしないと設定が反映されません。
ファイルを変更したのに反映されない?といった場合にはこのreload
をしたかどうかを確認しましょう。
まとめ
今回は、
Envaderを利用しながら
- Nginxのインストール
- Nginxの起動
- ドキュメントルートの確認
- ドキュメントルートの設定変更時の注意点
について学びました。
Webサーバーも用途によって、Apache
を使うべきなのか、Nginx
を使うべきなのか、しっかりと検討しながら運用していかないといけないですね。
また、ドキュメントルートを変更した際には、必ず設定をリロードする事。
これを忘れないようにしましょう。
Discussion