5月 23, 2026ガイド
Nginxリバースプロキシを設定する方法
Node.js、DockerなどをNginx経由で公開。WebSocket対応とVPSでのSSL。

リバースプロキシではNginxが公開HTTP/HTTPSを受け、バックエンド(localhost:3000のNode.js、Dockerコンテナ、Python APIなど)へ転送します。Hiddence VPSの本番運用に欠かせません。
前提条件
- Nginxがインストール済みで稼働中
- バックエンドがlocalhostで待受(例:127.0.0.1:3000)
- SSL用にドメインがVPSを指している
- ファイアウォールで80/443が開放
基本的なリバースプロキシ設定
ドメイン用のサイト設定を作成します:
bash
server {
listen 80;
server_name app.yourdomain.com;
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;
}
}
sudo nginx -t && sudo systemctl reload nginxWebSocket対応
Socket.io、多くのダッシュボード、リアルタイムアプリに必要です:
bash
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}CertbotでHTTPSを追加
HTTPが動作したら無料証明書を取得します:
bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com
# Certbot will update your server block for SSL automaticallyヒント
- ストリーミング/SSEでは必要に応じてproxy_buffering off
- ファイルアップロード用にclient_max_body_sizeを設定
- 複数バックエンドはサブドメインで分ける
- 複数バックエンドの負荷分散にはupstreamブロック
- 502 Bad Gateway時はerror.logを確認