🚙

Nginx(Webサーバー)をEnvaderで立ててみた。

2022/04/20に公開

今回はWebサーバーの中でも現在シェア率トップのNginxについて学習したので、その振り返りとまとめです。

利用した環境は、オンライン環境でLinuxについて学習ができるサービス、Envaderです。
環境構築が不要なため、すぐに利用できて便利なので、いつもお世話になっています。

Envaderについて気になる方は、リンクを貼っておきますので参考にどうぞ。

Envader

コース一覧

今回使用したシナリオ

この記事で分かること

  • Nginxの特徴
  • Debian環境でのNginxのインストール方法
  • Nginxの起動方法
  • Nginxでのドキュメントルートの確認方法
  • 設定ファイルを変更した際の処理方法

参考にさせていただいた記事一覧

Nginxでstatusの確認など 基本コマンド15選

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起動画像

Nginxでのドキュメントルートの確認方法

ApacheやNginxなどのWebサーバーには、ドキュメントルートという表示させたいHTMLファイルを置いておくディレクトリが存在します。

そのドキュメントルートがどこに設定されているのかを確認する方法は、/etc/nginx/sites-enabled/defaultを参照することで確認できます。

このファイルの中に、ドキュメントルートに関して記述がされています。

このファイルをvimcatコマンドで開くと、rootと書いてある場所にドキュメントルートが記載されています。

ちなみに見るべきところは、Default server configrationと書かれた所の下の、server {の下のrootです。

さらに下に行くとVirtual Host configrationと書かれたところにもrootとあるのですが、デフォルトのサーバーの設定ではないため、こちらではありません。

/etc/nginx/sites-enabled/default
# 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