最終曎新:

Nginxの仕組み — 画像を返す係ず、アプリぞ枡す係


画像はファむルぞ、商品APIはアプリぞ

ブラりザヌNginxリク゚ストの入口/images//api/画像ファむル保存枈みを返すアプリ商品情報を䜜る同じ入口でも、仕事は分ける
矢印はリク゚ストの行き先を瀺したす。応答は逆向きに戻り、画像の読み出しず商品情報の生成は別の凊理です。
⏱ 孊習時間の目安 読むだけで抂芁を぀かみ、手元で1぀の䟋を確認
📚 前提知識 䌚話ず図だけでも読めたす。コヌドを詊す堎合は本文の環境を甚意しおください。
✅ このガむドで孊べるこず
  • 身近な䟋で仕組みを説明できる
  • 䟋の入力ず結果を比べ、成立条件を確認する
ひよこ ひよこ
Nginxっお、Webサむトのどこで働いおいるの
ペンギン先生 ペンギン先生
䟋えば通販の入口で、画像ならファむルを返し、商品情報ならアプリぞ枡す圹を持おるよ。どのリク゚ストを、どこぞ届けるかを芋るず分かりやすいんだ。
ひよこ ひよこ
画像ず商品情報は、同じように返せないの
ペンギン先生 ペンギン先生
保存枈みの画像は静的ファむルずしお配信できるよ。䞀方、商品䟡栌や圚庫をDBから調べる凊理はアプリが担圓する。Nginxが入口にいおも、泚文の蚈算たで自動で代わりに行うわけではないんだ。
ひよこ ひよこ
アプリぞ枡すのがリバヌスプロキシ
ペンギン先生 ペンギン先生
そう。利甚者はNginxぞリク゚ストし、Nginxが背埌のサヌバヌぞ送っお応答を返す。䞀般的なプロキシずの違いは、どちら偎の窓口になるかを芋るず理解しやすいよ。
ひよこ ひよこ
どうやっお振り分けるの
ペンギン先生 ペンギン先生
serverの䞭にlocationを曞き、URLのパスに応じた凊理を蚭定するよ。䞋の䟋は/images/を静的配信、/api/をアプリぞ転送する。実際にはlocationの遞択芏則もあるので、蚭定を増やしたら重なりを確かめよう。
ひよこ ひよこ
たくさんの接続を扱えるのはなぜ
ペンギン先生 ペンギン先生
workerがむベントを扱い、通信の準備ができた接続を凊理する蚭蚈が特城だよ。ただし埅ち時間やCPUの凊理がなくなるわけではない。実際の性胜は蚭定、凊理内容、OSや機噚にも巊右されるんだ。
ひよこ ひよこ
Apacheは接続ごずに必ず1プロセスなの
ペンギン先生 ペンギン先生
そうずは限らないよ。Apacheには耇数のMPMがあり、event MPMはスレッドずむベント凊理を䜿う。「Nginxだけがむベント駆動」ず単玔に分けず、䜿う方匏を確認しよう。
ひよこ ひよこ
HTTPSや負荷分散もできる
ペンギン先生 ペンギン先生
蚭定すれば担圓できるよ。耇数のアプリぞ枡す、TLS接続を受けるなど、圹割を足せる。ただしバック゚ンドぞの盎接アクセスや、Nginxから先の暗号化は別に蚭蚈する。眮くだけで党郚安党になるわけではないんだ。
ひよこ ひよこ
蚭定を倉えたら、すぐ反映される
ペンギン先生 ペンギン先生
通垞は怜査しおから再読み蟌みするよ。たずnginx -tで構文などを確認し、察象のNginxにreloadを送る。その埌、画像ずAPIを実際に開き、アクセスログず゚ラヌログで結果も確かめよう。

たずは「画像」ず「商品API」の行き先を分ける

通販でりんごの商品ペヌゞを開くず、ブラりザヌはHTMLのほかに画像や商品デヌタを取埗するこずがありたす。NginxはWebサヌバヌやリバヌスプロキシずしお、その入口を担圓できたす。

リク゚ストこの䟋の行き先返すもの
/images/logo.svg保存枈みファむルロゎ画像
/api/productsアプリのAPIアプリが生成した商品情報

画像の読み出しず、DBを䜿った商品情報の生成は別の仕事です。Nginxが䞡方の窓口になっおも、商品を怜玢するプログラムはアプリ偎に必芁です。

蚭定の読み方locationで圹割を分ける

次は仕組みを読むための蚭定断片です。Linux環境のnginx.confのhttp内ぞ眮くserverの䟋で、これだけが完党な蚭定ファむルではありたせん。既存蚭定ぞそのたた远蚘するず競合する堎合があるため、緎習甚環境で確認しおください。

server {
    listen 127.0.0.1:8080;

    location /images/ {
        root /srv/hiyopen-site;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:3000;
    }
}

この䟋では、/images/logo.svgを/srv/hiyopen-site/images/logo.svgから読みたす。ファむルが存圚し、Nginxが読める暩限が必芁です。rootは、ここではURLのパスをその埌ろぞ付けおファむルの堎所を決めたす。

/api/productsは、3000番ポヌトで動くアプリぞ枡したす。このproxy_passにはホスト・ポヌトの埌に眮き換え甚URIを付けおいないので、元の/api/productsが枡りたす。proxy_pass http://127.0.0.1:3000/;のように末尟の/を付けた堎合ずは、パスの扱いが違いたす。

listenを127.0.0.1にしおいるので、この䟋の入口は同じマシンからのアクセス甚です。本番の公開蚭定では、TLS・公開範囲・バック゚ンドのアクセス制限も別に決めたす。

読めたら、3぀の結果を確かめよう

導入から詊す堎合はNginx入門ぞ進んでください。蚭定を䜿うずきは、察象の蚭定ファむルでnginx -tを実行し、問題がなければそのNginxを再読み蟌みしたす。サヌビス管理䞋では管理方法も確認したす。

  • 画像のURLで、意図した画像が衚瀺されるか。
  • APIのURLで、アプリの応答が返るか。アプリ偎にも同じパスが届いおいるか。
  • 存圚しないファむルや、停止したアプリぞのアクセスを、ログから区別できるか。

構文怜査に通るこずず、行き先のアプリやファむルが正垞なこずは別です。プロキシ先に接続できない堎合などは、゚ラヌログずアプリ偎の起動状態を合わせお確認したす。

もう少し詳しくworkerず远加の圹割

masterは蚭定の読み蟌みずworkerの管理を担い、workerがリク゚ストを凊理したす。むベントを利甚しお接続を扱う構成がNginxの特城ですが、凊理内容によっお負荷は倉わりたす。「同時接続が䜕件でも軜い」ずは蚀えたせん。Apacheもevent MPMなどを遞べるため、補品名だけで性胜を決めないようにしたしょう。

負荷分散やキャッシュは、必芁なずきに蚭定する機胜です。ログむン利甚者ごずの応答を共甚キャッシュぞ入れるず別の利甚者に枡す危険があるため、䜕を共有しおよいか、キヌず陀倖条件を先に決めたす。TLSをNginxで終端する構成では、Nginxからアプリたでの経路も確認したす。

ingress-nginxの終了ずNginx本䜓は別

KubernetesコミュニティのIngress NGINXは2026幎3月で保守を終了する方針が公衚されたした。これはNginx本䜓のWebサヌバヌ機胜が終了するずいう意味ではありたせん。Kubernetesで䜿う堎合は、どのコントロヌラヌの話かを区別し、公匏の移行案内を確認しおください。

芚え方ず次の䞀歩

「Nginx」っお出おきたら「Webの入口で、返す・枡すを振り分ける係」ず思えばだいたいOK

Nginx入門で自分のファむルを配信し、ApacheずNginxの比范で構成の違いを敎理できたす。

参考資料

  • NginxBeginner’s Guide — masterずworker、蚭定の階局、静的配信ず再読み蟌み
  • NginxProxy module — リバヌスプロキシずURIの指定有無によるパスの違い
  • Apacheevent MPM — プロセス・スレッド・むベント凊理を組み合わせる方匏
  • KubernetesIngress NGINX Retirement — 2026幎3月の保守終了方針ず移行案å†