Nginxの名前の由来と設定ファイルの書き方、locationの書き方


はじめに

はじめまして、youtuber系エンジニアのやっすんです!

今回、以下の内容について説明します。

  • Nginxとは
  • 設定ファイルの基礎
  • locationの書き方

同内容はYoutubeでも説明しているので、ぜひチェックしてみてください!

【YouTube動画】NGINXの設定ファイルの基礎、locationの書き方

Nginxとは

Nginxはエンジンエックスと発音します。

名前の由来は、何らかのエンジンであるという意味
Ngin (engine)をエンジンと読むアイデア
さらに、UNIXみたいにトレンドさをつけるため、最後にxをつけて、Nginxとしたそうです。

[参考]
[1] https://www.nginx.com/company/the-nginx-name
[2] https://thinkit.co.jp/story/2014/06/18/5060

設定ファイルの基礎

Nginxでは、ディレクティブという要素で設定を書いていきます。
ディレクティブには「;」 (セミコロン) と「{...}」 (波括弧, ブロック) を使うことができます。
特に、波括弧で囲ったディレクティブはコンテキストと呼びます。

外観は外側から、main, http, server, locationのように階層構造になっています。
Nginxでは、includeで別ファイルの設定を読み込むこともできるので、実際に設定を触るときはserver以下を触ることが多いです。

nginx.conf
# mainコンテキスト
# worker数や実行ユーザーを記述する
worker_processes  1;

# コネクション数の制限などを設定できる
events {
  worker_connections  1024;
}

# Webサーバー全体の設定
# アクセスログの形式、保存場所も指定できる
http {
  include       mime.types;
  default_type  application/octet-stream;

  sendfile        on;
  keepalive_timeout  65;

  #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  #                  '$status $body_bytes_sent "$http_referer" '
  #                  '"$http_user_agent" "$http_x_forwarded_for"';

  #access_log  logs/access.log  main

  # バーチャルサーバーの設定
  # ホスト名、IPアドレス、ポートによって何を配信するかを設定できる
  server {
    listen       80;
    server_name  localhost;

    # 1つのバーチャルサーバー内でのパス毎の設定
    location / {
      root   html;
      index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
  }
}

[参考]
[1] https://github.com/nginx/nginx/blob/master/conf/nginx.conf
[2] 『Nginx実践入門』 久保達彦, 道井俊介 著

locationの書き方

serverコンテキスト内で記述するlocationコンテキストには、5つの書き方が存在します。
また、識別子が同じ場合は、最長一致で判断されます。

識別子 意味
= 完全一致 location = test
~ 正規表現 (case-sensitive) location ~ test
~* 正規表現 (case-insensitive) location ~* test
なし 前方一致 location test
^~ 前方一致 location ^~ test

まとめ

今回はNginxの名前の由来に触れ、設定ファイルの構成やlocationを紹介しました。
locationの書き方は間違えやすいので、別動画・別記事で再度詳しく説明します!

何か間違いや指摘がありましたら、コメントよろしくお願いします。

twitteryoutubeでのコメントもお待ちしています!