Reverse Proxyとは
複数のWEBサーバーをインターネットに配信する時に、リバースプロキシを使えば比較的簡単に行うことができます。
今回は、NGINX を使ってリバースプロキシ(SSLなし)を実現しましょう。
サーバー環境
- WANに固定 IP アドレスが一つあってルーターに割り振られている。
- 複数のドメイン名が登録されている。
- ドメイン名ごとにWEBサーバーが設定されている。
今回は、Procmox VE の LXC で複数のWEBサーバーを作ることにした。
リバースプロキシもProxmox VE で作ることに。
debian LXC install
とりあえず、Proxmox VE で debian LXC をインストールする
debian install PVE LXC
Helper-Scripts を使って PVE に Debian 12 LXC を簡単インストールする。
nginx install
リバースプロキシのために、WEBサーバーの nginx をインストールしよう。

Nginx install
web server nginx install WEBサーバーNginxをインストール
nginx の設定ファイルについて
設定は、基本はnginx.confで行っている。が、設定を include して、各設定をバラバラのファイルで行うようだ。
/etc - nginx - nginx.conf
sites-available
sites-enabled
conf.d
サイトの設定は、sites-enableを include しているが、サイトの設定ファイルの本体は sites-available にある。
sites-enable には、シンボリックリンクを貼っているだけである。
使い方は、sites-available で設定ファイルを作って、sites-enable にリンクを作って、systemctl restart nginx とすれば良い。
ポート80でリバースプロキシを行う
ローカルネットワークで、WEBサーバーにURLでアクセスしてWEBブラウザで表示できるWEBページをで実験を行う。
クライアント 192.168.1.10
DNSサーバー 192.168.1.50
リバースプロキシ 192.168.1.60
WEBサーバー 182.168.1.70 webs.prox.local
サーバーセッティング
DNSサーバーにURLのIPアドレス登録
IP アドレスと URL を紐づける名前解決ができていること。
DNSサーバー に、WEBサーバーのIPアドレスと目的URLの登録を登録する。

DNS dnsmasq debian LXC
ローカルにDNSサーバーにdnsmasqで構築、Proxmox VE の LXC OSは debian
クライアントの/etc/hosts にDNSのIPを登録
クライアント PCの /etc/hosts にプロキシサーバーのIPアドレスと目的のURLを記すこと。
/etc/hosts
182.168.1.70 webs.prox.local
リバースプロキシ nginx.conf 設定
Nginxをリバースプロキシとして使うには、設定ファイルにproxy_pass
ディレクティブを追加します。この設定により、Nginxがクライアントからのリクエストをバックエンドのサーバーに転送し、そのレスポンスをクライアントに返せるようになります。
location / {
proxy_pass http://webs.prox.local;
}
server {
listen 80;
server_name webs.prox.local;
location / {
proxy_pass http://webs.prox.local;
}
}
ヘッダーの追加
server {
listen 80;
server_name webs.prox.local ;
location / {
proxy_pass http://webs.prox.local; # Web サーバー
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
設定のチェックと反映
リバースプロキシを介すると、バックエンドサーバーはクライアントの元のIPアドレスを直接知ることができません。このため、proxy_set_headerディレクティブを使って、クライアントの元の情報をバックエンドに渡すことが推奨されます。
sudo nginx -t
sudo systemctl reload nginx
ウエブブラウザで表示
名前解決さえできていれば、目的のWEBページは、問題なく表示される。
プロキシサーバーを経由しているか確認
確認方法は、nginx access log を見ることで可能です。
プロキシサーバーのターミナルから
アクセスログは、クライアントのIPからアクセスされていた。
tail -f /var/log/nginx/access.log
192.168.1.10 - - [07/Aug/2025:15:30:05 +0900] "GET / HTTP/1.1" 200 409 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15"
192.168.1.10 は、ブラウザのPCのアドレスです。
WEBサーバーのログを確認
WEBサーバーのNginxのログを確認
tail -f /var/log/nginx/access.log
192.168.1.60 - - [07/Aug/2025:16:38:18 +0900] "GET / HTTP/1.0" 200 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15"
プロキシサーバーのIPアドレスは、192.168.1.60
なので、WEBサーバーは、プロキシサーバーからアクセスされていた。