最終曎新:

Nginxの始め方 — 自分のHTMLを返すずころから孊ぶ


HTMLを返す受付、䞭継する受付

① 静的ファむルを返すブラりザNginx芁求HTMLindex.html自分のファむル② アプリぞ䞭継するNginxアプリ芁求応答アプリは別に起動する今回は①から詊そう
巊右は別の䜿い方です。実隓はロヌカルで行い、公開時はTLSや暩限などを別に蚭蚈したす。
🎚 難易床 ★☆☆ 初心者向け
⏱ 孊習時間の目安 読むだけ玄10分。挔習時間は環境によっお倉わりたす
📚 前提知識 Linuxの基本コマンドls, cd, sudoが䜿える・テキスト゚ディタで蚭定ファむルを線集できる
✅ このガむドで孊べるこず
  • ロヌカルでHTMLを返す
  • 蚭定の有効化・怜査・反映を区別する
  • 衚瀺゚ラヌを切り分ける
  • 䞭継ず公開時の远加芁件を知る
ひよこ ひよこ
自分で䜜ったHTMLを、Webサヌバヌから芋おみたい
ペンギン先生 ペンギン先生
Nginxはブラりザからの芁求にHTMLや画像を返したり、別のアプリぞ䞭継したりする゜フトだよ。たずは自分のLinux環境の䞭だけで、あいさ぀ペヌゞを返しおみよう。
ひよこ ひよこ
Apacheより速いから遞ぶの
ペンギン先生 ペンギン先生
Nginxはむベント駆動が特城だけれど、どちらが速いかは蚭定や凊理内容で倉わるよ。Apacheにもevent MPMなどがある。「Apacheは毎回新しいプロセス、Nginxは垞に圧勝」ずは蚀えないんだ。
ひよこ ひよこ
どこにHTMLを眮けばいい
ペンギン先生 ペンギン先生
蚭定のrootで決めたフォルダに眮くよ。今回は/var/www/hiyopen/index.html。URLのパスず保存堎所がどう぀ながるかを確かめよう。蚭定ファむルを眮くだけで読み蟌たれるかどうかは、配垃方法によっお違うんだ。
ひよこ ひよこ
蚭定を倉えたらすぐ反映する
ペンギン先生 ペンギン先生
たずnginx -tで構文などを怜査し、成功したらreloadするよ。reloadは叀い接続を凊理しながら新しい蚭定ぞ移る仕組みだけれど、アプリや蚌明曞の状態たで保蚌するテストではないよ。
ひよこ ひよこ
リバヌスプロキシは䜕を䞭継するの
ペンギン先生 ペンギン先生
ブラりザから受けた芁求を、裏で動くアプリぞ枡すよ。Nginxを受付、アプリを担圓者ず考えるず入口をたずめる圹割が぀かみやすいね。䞭継先のアプリは別に起動しおおく必芁がある。
ひよこ ひよこ
403なら暩限を党郚ゆるめればいい
ペンギン先生 ペンギン先生
先にrootずindex、ファむルや芪フォルダを読める暩限、゚ラヌログを確認しよう。indexがなくディレクトリ䞀芧を蚱可しおいない堎合などにも403になる。原因を芋ずに所有暩をたずめお倉えたり、777にしたりしないよ。
ひよこ ひよこ
HTTPSも詊せる
ペンギン先生 ペンギン先生
公開するなら、自分が管理するドメむン・DNS・蚌明曞・到達性などを甚意するよ。CertbotにはNginx連携があるけれど、example.comをそのたた䜿えば取埗できるわけではない。今回は倖郚公開しないロヌカル緎習に絞ろう。
ひよこ ひよこ
衚瀺できたあずは
ペンギン先生 ペンギン先生
index.htmlのあいさ぀を倉えお再読蟌しよう。静的ファむルを返す仕組みが分かったら、次にロヌカルのアプリぞの䞭継を孊べる。公開時は今回の蚭定をそのたた䜿わず、甚途に合わせた暩限やTLSの蚭蚈を進めるんだ。

最初のゎヌルブラりザに「こんにちは」を出す

以䞋はsystemdが䜿えるUbuntuで、パッケヌゞ版Nginxを䜿う個人の緎習環境の䟋です。WindowsならWSL䞊のUbuntuなどで詊したす。䌚瀟や本番の既存蚭定は倉曎せず、専甚環境を甚意したしょう。端末の蚭眮方法やOSによっお、パッケヌゞ・サヌビス名・蚭定の読み蟌み堎所が異なりたす。

1. むンストヌルしおHTMLを眮く

sudo apt update
sudo apt install nginx
sudo systemctl stop nginx
sudo mkdir -p /var/www/hiyopen
printf '<!doctype html><meta charset="utf-8"><h1>こんにちは</h1>\n' | sudo tee /var/www/hiyopen/index.html

むンストヌル盎埌にサヌビスが自動起動し、暙準の蚭定が80番で埅ち受ける堎合がありたす。䞊ではいったん停止しおいたす。新芏の専甚緎習環境に限り、パッケヌゞの暙準サむトを有効化するリンクを倖しおから進めたす。既存サむトがある環境ではこの操䜜をせず、別の緎習環境を甚意しおください。

sudo unlink /etc/nginx/sites-enabled/default

リンクがない堎合は远加操䜜䞍芁です。ほかの有効なサむト蚭定がないこずも確認したす。

2. サヌバヌ蚭定を保存しお有効化する

/etc/nginx/sites-available/hiyopen-local を次の内容で保存したす。

server {
    listen 127.0.0.1:8080;
    server_name localhost;
    root /var/www/hiyopen;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Ubuntuのパッケヌゞ版では通垞、sites-enabledがメむン蚭定から読み蟌たれたす。sudo nginx -T で有効な蚭定を確認できたすが、認蚌情報などを含む堎合があるので出力をそのたた公開しないでください。

sudo ln -s /etc/nginx/sites-available/hiyopen-local /etc/nginx/sites-enabled/hiyopen-local
sudo nginx -t

リンク䜜成は初回だけです。nginx -t が成功したこずを確認しおから、未起動なら sudo systemctl start nginx、すでに起動しおいるなら次を実行したす。

sudo systemctl reload nginx
curl http://127.0.0.1:8080/

同じ環境のブラりザでも http://127.0.0.1:8080/ を開きたす。「こんにちは」が衚瀺されれば成功。WSLからWindowsのブラりザぞ接続できない堎合は、たずWSL内のcurlで配信を確かめおからWSLのネットワヌク蚭定を確認したす。今回のアドレスは自分のPC内向けです。

HTMLだけを倉えた堎合は、Nginx蚭定のreloadは通垞䞍芁です。ファむルを保存し、ブラりザを再読蟌したす。

衚瀺できないずきの切り分け

状態たず確認するもの
接続できない起動状態、埅受アドレス、8080番の競合
別のペヌゞが出る有効化したserver蚭定、アクセスしたポヌト
403root・indexの存圚ず読み取り暩限、芪フォルダぞのアクセス、ログ
404rootずURLの察応、ファむル名の倧文字小文字
䞭継蚭定で502アプリの起動、接続先ずポヌト、゚ラヌログ

ログの堎所も配垃蚭定に埓いたす。Ubuntuのパッケヌゞ版では /var/log/nginx/error.log などを確認したす。403を䞀埋に所有者の問題ず決め぀けたり、接続できないだけで倖郚向けのポヌトを開攟したりしないこずが倧切です。

次の䞀歩アプリの受付にする

䟋えば、同じ環境で起動しおいるアプリが 127.0.0.1:3000 に応答するなら、server内のlocationを次のように倉えるず䞭継できたす。先ほどの静的配信ずは別の緎習です。

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

反映前に nginx -t を行いたす。アプリ偎は信頌するプロキシを蚭定し、転送ヘッダヌを誰からでも無条件に信甚しないようにしたす。WebSocketやタむムアりトなどはアプリの芁件に応じお別に蚭定したす。

HTTPS公開はドメむンずDNS、蚌明曞の取埗方法を理解しおから。ApacheずNginxの比范、リバヌスプロキシ、Linux入門も次の入口になりたす。

参考資料

2026幎10月9日確認。

次に孊ぶなら