リバースプロキシの設定をする

4月 14, 2024

先日、クラウドにある仮想マシンと自宅のPCをVPN接続しました。
この接続を利用してクラウドの仮想マシンに設置したWebサーバーを自宅のPCに転送する設定をおこないます。自宅のPCにもWebサーバーが設置してあります。OSはWindowsでWebサーバーにIISを使用しています。自宅にグローバルIPアドレスが無くてもサーバーを公開できるメリットがあります。

まずは自宅のWebサーバーを設定します。単純なHTMLファイルを作成し、ポート番号は8080を使用します。80は他で使用していました。他のPCからアクセスして正常に表示されるかを確認します。

クラウドにある仮想マシンにはNGINXがインストール済みで初期状態です。設定ファイルを編集してこれを実現していきます。
NGINXの設定ファイルは次のディレクトリにあります。
/etc/nginx
ここにあるnginx.confというファイルの中身をみると次のディレクトリに拡張子が.confというファイルを設置するとその内容が読み込まれると記載してあるので新規で必要最低限の事を書いて保存します。
/etc/nginx/conf.d

cd /etc/nginx/conf.d/
vi reverse.conf
    server {
        listen       80;
        listen       [::]:80;
        server_name  vpn.sasori.life;
        root         /usr/share/nginx/html;

        location / {
                     proxy_pass http://192.168.26.10:8080/;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

サーバー名はグローバルIPアドレスとの紐づけをしてあるのでドメイン名を入力しています。プライベートIPアドレスはIISのPCを示しており、VPN接続をした時点で同じLANに属するのでこのように記述します。
記述したらNGINXを再起動します。

systemctl restart nginx

念のため、SSH接続した画面でIISに設置したHTMLファイルを見れるか確認します。

curl http://192.168.26.10:8080/

ソースが表示されているので正常に機能しています。今度は仮想マシンにインターネットからブラウザでアクセスします。グローバルIPアドレスをドメイン名で解決しているのでドメイン名のアドレスを入力します。
正常に表示されました。


IISのログを確認するとVPN接続に必要な仮想LANカードのIPアドレスが記されています。

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2021-11-22 11:49:59
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2021-11-22 11:49:59 192.168.26.10 GET / - 8080 - 192.168.26.5 curl/7.61.1 200 0 0 390
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2021-11-22 12:04:04
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2021-11-22 12:04:04 192.168.26.10 GET / - 8080 - 192.168.26.5 Mozilla/5.0+(Linux;+Android+12;+Pixel+4a)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/96.0.4664.45+Mobile+Safari/537.36 200 0 0 234
2021-11-22 12:04:04 192.168.26.10 GET /index.php p=favicon.ico 8080 - 192.168.26.5 Mozilla/5.0+(Linux;+Android+12;+Pixel+4a)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/96.0.4664.45+Mobile+Safari/537.36 404 0 2 140
2021-11-22 12:05:38 192.168.26.10 GET / - 8080 - 192.168.26.5 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/95.0.4638.54+Safari/DC1330 200 0 0 140
2021-11-22 12:05:38 192.168.26.10 GET /index.php p=favicon.ico 8080 - 192.168.26.5 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/95.0.4638.54+Safari/DC1330 404 0 2 156
2021-11-22 12:08:13 192.168.26.10 GET / - 8080 - 192.168.26.5 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/95.0.4638.54+Safari/537.36 304 0 0 140
2021-11-22 12:20:57 192.168.26.10 GET / - 8080 - 192.168.26.5 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/95.0.4638.54+Safari/537.36 304 0 0 156
2021-11-22 12:21:54 192.168.26.10 GET / - 8080 - 192.168.26.5 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/95.0.4638.54+Safari/537.36 304 0 0 140

アクセスしているサーバーはアメリカにあるが、実際に表示されているページは日本にある。

教育

Posted by admin