Reverse Proxy

Reverse Proxy debian nginx LXC 1

WEBサイトのフロントエンドで使用、リバースプロキシの実験、Nginx Port80 で none SSL

Reverse Proxyとは

reverse prozy

複数のWEBサーバーをインターネットに配信する時に、リバースプロキシを使えば比較的簡単に行うことができます。
今回は、NGINX を使ってリバースプロキシ(SSLなし)を実現しましょう。

サーバー環境

  1. WANに固定 IP アドレスが一つあってルーターに割り振られている。
  2. 複数のドメイン名が登録されている。
  3. ドメイン名ごとにWEBサーバーが設定されている。

今回は、Procmox VE の LXC で複数のWEBサーバーを作ることにした。

リバースプロキシもProxmox VE で作ることに。

debian LXC install

とりあえず、Proxmox VE で debian LXC をインストールする

nginx install

リバースプロキシのために、WEBサーバーの nginx をインストールしよう。

nginx icon

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ページをで実験を行う。

lan reverse proxy
				
					クライアント     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の登録を登録する。

クライアントの/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サーバーは、プロキシサーバーからアクセスされていた。

Reverse Proxy debian nginx LXC 1

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連コンテンツ

dnsmasq icon

DNS dnsmasq debian LXC

ローカルにDNSサーバーにdnsmasqで構築、Proxmox VE の LXC OSは debian

debian icon

debian install PVE LXC

Helper-Scripts を使って PVE に Debian 12 LXC を簡単インストールする。

最近の記事

Reverse Proxy debian nginx LXC 1