nginxを面接で説明するには?役割と設定の読み方
nginxを面接で説明するときは、ソフトの名前だけでなく、要求をどこで受けて何を返したのかを話しましょう。静的ファイルの配信、アプリへの代理、複数サーバーへの分散を分けると、自分が使った構成も整理しやすくなります。
設定ファイルを見た経験があっても、入口のポートと転送先を混同すると、通信経路を正しく説明できません。短い設定例から役割を読み、実際に変更した箇所と確認した動きを結び付けていきましょう。
本記事では、nginxの基本的な役割、3つの使い方、設定の読み方と、面接で経験を具体的に説明する方法を解説します。
nginxとは?Webの要求を受けて応答を返すソフト
nginx(エンジンエックス)は、Webの要求を受けて応答を返すためのソフトウェアです。保存済みのファイルを配信するWebサーバーのほか、後ろにあるアプリへ要求を渡すリバースプロキシや、複数の転送先へ振り分けるロードバランサーとしても使えます。名前と、その構成で担っている役割は分けて考えます。
nginxはイベント駆動の処理モデルを採用しています。接続で起きるイベントに応じて処理を進める仕組みですが、これだけを理由に、どの条件でも別のソフトより速いとは言えません。性能は設定や負荷、使う機能などにも左右されます。

比較に挙がるApache HTTP Serverにもevent MPMがあります。「Apacheは常に1接続につき1プロセス、nginxだけがイベント駆動」と単純に分ける説明は避けてください。今回の学習では、性能の順位より、要求が通る位置と応答を作る相手に注目します。
まずは自分の構成図のどこにnginxがあるかを指し、そこで何を受け渡ししているかを説明しましょう。同じソフトでも、静的サイトとアプリの前段では役割が違います。学習経験の伝え方を相談したい人は、IT就活エージェントの支援内容も比較してみてください。
nginxが担う3つの役割を分けて理解する
nginxの使い方を、要求に対してどこから応答を返すかという軸で分けます。以下の3つは排他的な製品の種類ではなく、同じ構成の中で組み合わせることもできる役割です。自分が使った機能と、使っていない機能を区別して読みましょう。
静的ファイルを返す
静的ファイルの配信では、保存済みのHTML・CSS・画像などを、設定した場所から返すのが基本です。nginxが要求のパスと設定を照らし合わせ、対象ファイルを探します。利用者がアクセスするURLと、サーバー内のファイルの置き場所は同じ表記とは限りません。
たとえば、作成済みの紹介ページと画像を公開する構成なら、要求に対応するファイルを返します。利用者ごとの情報を取り出してHTMLを生成するアプリ処理とは、応答を用意する主体が違います。静的配信を使っただけで、ログイン処理やデータベース操作までnginxに任せたことにはなりません。
説明するときは「何のファイルを、どの要求に対して返したか」を一組にしてください。ページが表示できない場合も、URLだけでなく、設定した場所と対象ファイルを確認する視点につながります。
アプリケーションへ要求を渡す
リバースプロキシとして使う場合は、クライアントから受けた要求を後ろのアプリなどへ送り、その応答を受けて返します。転送先が1つだけでもリバースプロキシは成立します。複数サーバーへ分散することが、この役割の必須条件ではありません。
たとえば、ブラウザの要求をnginxが受け、別のポートで動くアプリへ渡す構成があります。アプリがデータを調べて応答を作り、nginxがそれを利用者へ返します。このとき、nginxの設定を担当した人と、アプリ内部の処理を実装した人が同じとは限りません。
「nginxが応答を中継した部分」と「アプリが処理した部分」を分けて話しましょう。転送方式も相手によって異なります。HTTPの転送設定を見ただけで、すべてのアプリとの接続方法が同じだと一般化しないことが大切です。
複数のサーバーへ振り分ける
負荷分散では、複数のアプリのインスタンスなどへ要求を振り分けます。nginxのHTTPの設定では、upstreamでまとめた転送先のグループをproxy_passから指定する使い方があります。1つの要求をすべてのサーバーへ複製するのではなく、設定した方式に従って転送先を選びます。
利用者からの要求を代理する役割と、その要求の転送先を選ぶ役割を区別してください。アプリを2つ並べただけで、障害時にも必ず応答できると保証できるわけではありません。失敗した転送先の扱いや、利用者の状態をどこで管理するかも関係します。

学習で確認したのが単一アプリへの転送だけなら、負荷分散まで実装したとは言わないようにしましょう。振り分け方やヘルスチェック、セッションの扱いを深掘りしたい人は、ロードバランサーの記事で整理できます。

設定例は入口と転送先を分けて読む
設定を読むときは、最初に要求の入口と転送先を探します。以下はhttpの中に置くserverブロックの抜粋であり、nginx.conf全体ではありません。同じホストでアプリが3000番ポートを待ち受ける構成を仮定しています。実行済みの完成環境ではなく、設定の意味を読むための例です。
server {
listen 8080;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
listen 8080はnginxの待受ポート、proxy_passの127.0.0.1:3000は転送先を表します。location /は要求のパスに対応する設定範囲です。ここでの127.0.0.1はnginxが動く側の自分自身を指すため、別ホストや別コンテナのアプリへ、そのまま同じ指定を当てはめることはできません。

この例のproxy_passは転送先URLにパス部分を付けていません。パスを付けた設定では、要求のURIの扱いが変わる場合があります。最初は入口から転送先までを追い、別の例をコピーするときも、ポートとパスの違いを確かめてください。
設定の構文検査と、実際に要求を送る動作確認を別に行うのがおすすめです。構文に問題がなくても、アプリが起動していなければ期待する応答は得られません。要求先と応答、アクセスログやエラーログを照らし合わせて確認します。
面接では設定した箇所と確かめた動きを話そう
面接では、nginxを使った目的から説明し、担当した設定と確かめた動きを続けます。「Webサーバーとして使いました」だけでは、ファイルを配信したのか、アプリへ代理したのかが分かりません。自分の構成に合わせて、要求が通る順序を言葉にしましょう。
用意済みの環境を利用した経験と、自分で設定を変更した経験は区別します。たとえば、教材の設定をそのまま起動した場合は、その範囲を述べたうえで、読み取れた通信経路を説明できます。変更していない機能や確認していない性能まで、担当した成果として話す必要はありません。
設定を変更したなら、変更前後で何が変わると考え、何を送ってどんな応答を確認したかを整理します。エラーに出会った経験も、見たログと切り分けた順序を添えると、単なる成功談ではなく、問題に向き合った過程を説明できます。
目的・担当した設定・通信経路・確認結果を、自分の経験の範囲でつなげて話してください。性能改善や本番運用の経験がなければ無理に付け足さず、次に検証したい点を分けて伝えましょう。学習内容を応募先向けに整理する際は、エージェントの支援内容も比較できます。
説明の組み立て例
学習用アプリへの入口をそろえるため、nginxで受けた要求を同じホストのアプリへ渡す設定をしました。変更したのは待受ポートと転送先です。ブラウザから入口へアクセスし、アプリの応答とログを確認しました。負荷分散はこの構成では試していません。
上の例は組み立て方の見本です。実際に担当し、確認した内容に置き換えてください。
参考資料



