Ubuntu 26.04 で Web サーバーを構成する場合、Nginx は静的ファイル配信、リバースプロキシ、TLS 終端、PHP-FPM への FastCGI 連携などでよく使われます。
この記事では、Ubuntu 26.04 に Nginx を導入し、サービス、設定ファイル、server block、ログ、リバースプロキシ、PHP-FPM 連携の入口を確認する基本手順をまとめます。
- Nginx の役割と Apache / PHP-FPM との分担
- パッケージ導入、サービス起動、設定検証
- server block の基本形と静的ファイル配信
- リバースプロキシと PHP-FPM 連携の入口
- ログ確認と公開前の確認ポイント
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| Web サーバー | Nginx |
| 主な設定先 | /etc/nginx/sites-available/、/etc/nginx/sites-enabled/ |
| 設定検証 | sudo nginx -t |
| ログ | /var/log/nginx/access.log、/var/log/nginx/error.log |
Nginx の役割を確認する
Nginx は軽量な Web サーバーとして静的ファイルを配信できるほか、バックエンドのアプリケーションサーバーに HTTP リクエストを中継するリバースプロキシとしても使えます。PHP を直接実行するのではなく、PHP-FPM に処理を渡す点も重要です。
- 静的ファイルを配信する
- バックエンドへリバースプロキシする
- PHP-FPM へ FastCGI で処理を渡す
- TLS 終端や HTTP/2 を担当する
Nginx をインストールする
APT で Nginx を導入し、サービスを有効化して起動します。Ubuntu 標準パッケージを使う場合は、まずこの流れで十分です。
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx.service
systemctl status nginx.service --no-pagerバージョンとビルドオプションを確認する
導入後は Nginx のバージョンとビルドオプションを確認します。利用できるモジュールや TLS 関連機能は、ビルドオプションに依存します。
nginx -v
nginx -V設定ファイルの構成を確認する
Ubuntu の Nginx では、サイトごとの設定を /etc/nginx/sites-available/ に置き、/etc/nginx/sites-enabled/ からシンボリックリンクで有効化する構成が一般的です。
ls -l /etc/nginx/
ls -l /etc/nginx/sites-available/
ls -l /etc/nginx/sites-enabled/
sudo nginx -t最小の server block を作成する
静的ファイルを配信する最小の server block を作成します。ここでは例として www.example.com を使います。実際の環境では利用する FQDN に置き換えます。
sudo install -d -o www-data -g www-data -m 0755 /var/www/www.example.com/html
echo 'Nginx on Ubuntu 26.04' | sudo tee /var/www/www.example.com/html/index.html >/dev/null
sudo tee /etc/nginx/sites-available/www.example.com >/dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name www.example.com;
root /var/www/www.example.com/html;
index index.html;
access_log /var/log/nginx/www.example.com.access.log;
error_log /var/log/nginx/www.example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
EOF
sudo ln -sfn /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/www.example.com
sudo nginx -t
sudo systemctl reload nginx.serviceHTTP 応答を確認する
Nginx を reload したら、ローカルまたは外部から HTTP 応答を確認します。名前解決がまだない場合は、検証端末の hosts や curl --resolve を使って切り分けます。
curl -I http://www.example.com/
curl --resolve www.example.com:80:192.0.2.10 -I http://www.example.com/リバースプロキシの基本形を確認する
Nginx をアプリケーションの前段に置く場合は、proxy_pass でバックエンドに中継します。バックエンドには Node.js、Python、Java、別の Web サーバーなどを配置できます。
sudo tee /etc/nginx/sites-available/app.example.com >/dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name app.example.com;
access_log /var/log/nginx/app.example.com.access.log;
error_log /var/log/nginx/app.example.com.error.log;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
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;
}
}
EOF
sudo ln -sfn /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/app.example.com
sudo nginx -t
sudo systemctl reload nginx.servicePHP-FPM へ渡す入口を確認する
PHP アプリケーションを Nginx で公開する場合、PHP ファイルへのリクエストを PHP-FPM の Unix socket に渡します。socket パスは実際の PHP バージョンに合わせます。
sudo tee /etc/nginx/sites-available/php.example.com >/dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name php.example.com;
root /var/www/php.example.com/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
}
EOF
sudo ln -sfn /etc/nginx/sites-available/php.example.com /etc/nginx/sites-enabled/php.example.com
sudo nginx -t
sudo systemctl reload nginx.servicePHP-FPM 側では /run/php/php8.5-fpm.sock が存在し、Nginx の実行ユーザーが接続できることを確認します。
ログを確認する
Nginx の切り分けでは、サービス状態、設定検証、access log、error log をセットで確認します。502 の場合は、バックエンドや PHP-FPM 側のログも合わせて確認します。
systemctl status nginx.service --no-pager
sudo nginx -t
sudo tail -n 100 /var/log/nginx/access.log
sudo tail -n 100 /var/log/nginx/error.log
journalctl -u nginx.service --no-pager -n 100公開前の確認ポイント
sudo nginx -tが成功する- 不要な default site を公開していない
server_nameが実際の FQDN と一致している- access log と error log の出力先を確認している
- リバースプロキシ先や PHP-FPM socket が実在する
- TLS を使う場合は証明書と HTTP から HTTPS への誘導を別途確認する
まとめ
Ubuntu 26.04 の Nginx 基本設定では、パッケージ導入、サービス起動、設定ファイル構成、server block、設定検証、ログ確認を順番に押さえます。
静的ファイル配信だけでなく、リバースプロキシや PHP-FPM 連携の入口を理解しておくと、Nextcloud、WordPress、独自アプリケーションなどを載せる前の設計がしやすくなります。

