LinuCレベル2 202試験の出題範囲「2.09.3 nginxの設定と管理」の解説まとめ

IT資格

LinuCレベル2 202試験の出題範囲「2.09.3 nginxの設定と管理」の技術的内容についての解説をまとめました。

重要度3
概要リバースプロキシサーバーであるnginxのインストールおよび設定ができる。これには、HTTPサーバーとしてのnginx の設定が含まれる。
詳細nginx の設定と管理
 ・/etc/nginx/, nginx
nginx のSSL設定
 ・ssl, ssl_certificate, ssl_certificate_key, ssl_ciphers, ssl_protocols
リバースプロキシサーバーとしての設定
 ・proxy_pass, proxy_http_version, proxy_set_header
nginx でリダイレクトを行う
LinuCレベル2 202試験 出題範囲 | LPI-Japan
仮想環境を含むLinuxのシステム設計・ネットワーク構築において、アーキテクチャに基づいた設計、導入、問題解決ができるエンジニアであることを認定します。試験センターの他に自宅でも受験できます。受験費用は税込16,500円。

Nginx(エンジンエックス)の概要

NGINXは、オープンソースのWEBサーバーソフトです。Apacheなどのように、ブラウザからサーバーに接続した際にhtml・css等で書かれたサイトのページを表示させるために動作するソフトになります。

nginxはオープンソースのWebサーバソフトウェアです。nginxの読み方は「エンジンエックス」です。Webサーバとしての機能のほかに、HTTP、SMTP、POP3、IMAPリバースプロキシ、メールプロキシの機能も併せ持っています。Apacheよりも新しく、2004年に初版がリリースされ、開発が続けられています。2014年3月現在では、世界中のWebサーバのシェアの約16%(Apache、Microsoft IISに続く第三位)を握っているとされています。

nginxの特徴として、特に静的コンテンツに対する処理速度が高速であること、高性能であること、高効率なメモリ利用などが挙げられます。反面、日本ではシェアが低く、日本語の解説書が少ないため、導入の敷居が若干高いという側面もありますが、日本でも根強い愛好者がいます。

nginx - Linux技術者認定 LinuC | LPI-Japan
Linuxを学習する上で出てくる素朴な疑問や、便利なテクニックなどを紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に...

上記のLinuC公式サイトの記載では、2014年時点でのNGINXのシェアについて記述があり、記事が古いので書かれていませんが、その後NGINXは2022年にApacheを超えたシェアで世界No1のシェアになりました。

NGINXの詳細については以下の記事でまとめています。

LinuC公式サイトの例題からNGINXの紹介

以下のLinuC公式サイトに掲載されているNGINXに関する例題の解説からNGINXの機能説明について引用します。

例題の選択肢について解説します。

  1. nginxはウェブサーバとして使用することができる。
    正しい説明です。
  2. nginxはリバースプロキシサーバとして使用することができる。
    正しい説明です。
  3. nginxはメールサービスのプロキシサーバとして使用することができる。
    正しい説明です。
nginxの設定と管理 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル2を受験される方向けに202試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

NGINXはApache HTTP Server同様にWEBサーバー機能をインストールすることができるソフトウェアです。NGINXはウェブサーバ以外にも、リバースプロキシサーバ、メールサービスのプロキシサーバとして使うことができます。

上記の例題で誤っている選択肢として挙げられている以下については、その通り、NGINXはメールサービスとウェブサービス以外のプロキシには使用できません。

nginxはメールサービスとウェブサービス以外のプロキシには使用できない。

nginxの設定と管理 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル2を受験される方向けに202試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

NGINXの設定ファイル(/etc/nginx/nginx.conf)の概要

以下の記事でのRed Hat Enterprise Linux 9.6に実際にNGINXをインストールして設定ファイルの中身を参照した結果を引用します。

[root@RHEL96 ~]# cat /etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    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;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

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

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

[root@RHEL96 ~]#

/etc/nginx/conf.d/配下のconfファイルも参照する

前述した、/etc/nginx/nginx.confファイルには以下のようにinclude以下に/etc/nginx/conf.d/配下の.confファイルを参照する記述がされています。

    include /etc/nginx/conf.d/*.conf;

nginxでのIPv6アドレスのTCP80番ポートの公開

以下のLinuC公式サイトに掲載されている例題をもとにNGINXの使い方を紹介します。

nginxの設定と管理 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル2を受験される方向けに202試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

まず初めにポート番号80番(TCP)はHTTPというサービスのポート番号になります。HTTPはブラウザからHTMLなどで書かれたファイルにアクセスするために使われるプロトコルです。

NGINXでIPv6アドレスでTCP80番ポートを公開するには「/etc/nginx/conf.d/default.conf」ファイルに以下を記載します。

listen [::]:80;

NGINXのディレクティブ

nginxの設定(nginx.conf)に記載されている設定項目は「ディレクティブ」と呼ばれます。LinuC公式サイトに掲載されている例題にディレクティブについてまとめられています。

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

nginxの設定と管理 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル2を受験される方向けに202試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

タイトルとURLをコピーしました