LinuCレベル2 202試験の例題と解説
主題2.09HTTPサーバーとプロキシサーバー
2.09.3nginxの設定と管理
LinuCレベル2 202試験の試験範囲から「2.09.3 nginxの設定と管理 」についての例題を解いてみます。
Webに公開されるサービスにおいて、Webサーバやリバースプロキシサーバとして利用されることが非常に多いnginxに関する内容が含まれます。
それぞれの役割として利用する場合の設定方法について、しっかりと把握しておきましょう。
例題
nginxの設定において、1つのプロセスが処理できる最大コネクション数を指定するディレクティブはどれか。
- connections
- process_connections
- max_connections
- worker_connections
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「4.worker_connections」です。
その他のディレクティブは、存在しません。
nginxの設定(nginx.conf)において設定項目はディレクティブと呼ばれ、以下などがあります。
user:
ワーカプロセスを実行するユーザとグループ指定
worker_processes:
起動するワーカプロセス数指定(CPUコア数と同等にするなど)
pid:
メインプロセスのプロセスIDを書き込むファイル指定
worker_connections:
ワーカプロセスが同時オープン可能な最大コネクション数指定
include:
外部参照する設定ファイルやパスを指定
listen:
解放するポート指定
root:
ドキュメントディレクトリ指定
index:
クライアントへ提供するファイル指定
なお、nginxはHTTP(Web)サーバとしてだけでなくリバースプロキシサーバとしても利用でき、必要なディレクティブも変わってくるので、設定の際には注意が必要です。
ディレクティブの詳細については、以下の公式ドキュメントから確認できます。
http://nginx.org/en/docs/ngx_core_module.html#user
簡単なWebサーバの設定(nginx.conf、およびdefault.conf)を行う場合、以下のようになります。
root@31e73f350d3c:/# cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    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  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    include /etc/nginx/conf.d/*.conf;
}
root@31e73f350d3c:/# cat /etc/nginx/conf.d/default.conf
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}例題作成者
鯨井 貴博 氏(LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 Zeus IT Camp)
