任意のポートで実行されているサーバーを特定のポートで外部公開
解放されているポートが固定の環境で、Nginxでリバースプロキシを設定して任意のポートで実行されているサービスを外部公開する方法。
以下の例はAWS Cloud9環境で、外部公開用のポートが8080でポート8000で起動しているサーバーを公開するためのリバースプロキシ設定である。
環境
Ubuntu 22.04環境で検証。
Nginxのインストール
Nginxをインストールする。
apt install nginx
Nginxの設定ファイルを編集
以下ファイルを編集する。
/etc/nginx/sites-enable/default
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 8080 default_server;
listen [::]:8080 default_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 600;
location / {
proxy_pass http://localhost:8000;
# Proxy headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection close;
proxy_pass_header X-CSRFToken;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
}
}