この記事は何?
- 自分のnginxの勉強のためのアウトプットです。
前提
- nginxが最小構成で動くような設定だけを対象として読んでいます。
server.confの内容
user
- プロセスを起動するユーザ
- master processはrootで起動する
worker_processes
- workerの数
- autoだとコア数に設定してくれる
pid
- プロセスIDを格納するファイル
events
worker_connections
- 1ワーカーの接続数
multi_accept
- 複数のリクエストを同時に受け付けるか
use
- 複数アクセスをさばくためにI/O多重化に使うシステムコールを指定する
- select/poll/epoll
- epollはselect/pollに比べて計算量が少なく、また監視対象のファイルディスクリプタの数が無制限
http
charset
- HTTPレスポンスヘッダの
Content_Type
に付与する文字コード
server_tokens
- HTTPレスポンスヘッダの
Server
にnginxのバージョンを入れるか
MIMEタイプの指定
-
/etc/nginx/mime.types;
にnginxが用意したMIMEタイプと拡張子のマッピングがある - マッピングに無いものは
default_type
で指定したMIMEタイプとなる
access_log
- アクセスログの出力先PATHを指定する
error_log
- エラーログの出力先
server
- バーチャルホスト毎の設定を行う
listen
- LISTENするポート
server_name
- HTTPリクエストヘッダのHostに該当する
root
- Documentルートを指定する
index
- HTTPリクエストのURLが「/」で終わっている時にインデックスとして使うファイルを指定する
charset
- HTTPレスポンスヘッダのContent_Typeに付与する文字コード
location
- URIのパスごとの設定を書く
こんな感じで動いた
# プロセスを起動するユーザ
user nginx;
# workerの数
# auto: コア数に合わせて設定
worker_processes auto;
# プロセスIDを格納するファイル
pid /var/run/nginx.pid;
# イベント処理に関するモジュール
events {
# 1ワーカーあたりの接続数
worker_connections 2048;
# 複数リクエストを同時に受け付けるか
multi_accept on;
# I/O多重化に使うシステムコールを選択する
# epollはselect/pollに比べて計算量が少なく、また監視対象のファイルディスクリプタの数が無制限
use epoll;
}
# httpに関するモジュール
# httpサーバ全体の設定
http {
# HTTPレスポンスヘッダのContent_Typeに付与する文字コード
charset UTF-8;
# HTTPレスポンスヘッダのServerにnginxのバージョンを入れるか(開発時以外は入れないほうが吉)
server_tokens off;
# MIMEタイプの指定
## nginxがデフォルトで用意するMIMEタイプと拡張子のマッピングファイル
include /etc/nginx/mime.types;
## マッピングにない拡張子のdefault
default_type text/plain;
# アクセスログの出力先
access_log /var/log/nginx/access.log;
# エラーログの出力先
error_log /var/log/nginx/error.log;
# バーチャルホスト毎の設定
server {
# LISTENするポート
listen 80;
# HTTPリクエストヘッダのHostに該当する
server_name localhost;
# ルートディレクトリを指定する
root /var/www/html;
# HTTPリクエストのURLが「/」で終わっている時にインデックスとして使うファイル
index index.html;
# HTTPレスポンスヘッダのContent_Typeに付与する文字コード
charset utf-8;
# アクセスログの出力先
access_log /var/log/nginx/access.log;
# エラーログの出力先
error_log /var/log/nginx/error.log;
# URIのパスごとの設定
location / {
# ルートディレクトリを指定する
root /var/www/html;
}
}
}