概要
TCPやUDPのポート転送をしたいときが来るだろう。
そんなときにこの方法を使ってみると良い。
Ubuntuを使ってやっていきます。
Nginxのインストール
Ubuntuでインストールする場合はaptコマンドを使用します。
魔法のコマンド
sudo apt update
そしてNginxをダウンロードする
sudo apt install nginx
Nginxの設定
確認
起動しているかの確認
sudo systemctl status nginx
もし起動していなかったら
sudo systemctl start nginx
以下は自動起動のコマンド
sudo systemctl enable nginx
実際に設定してみよう
まずはNginxのコンフィグディレクトリに行こう!
cd /etc/nginx/sites-available/
コンフィグファイルを開く
sudo vim default
もとのファイル(コメントはなし)
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
proxy_pass http://192.168.0.30:8080/guacamole/;
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;
}
}
それぞれについて詳しく見る
proxy_pass : 接続先のIPアドレスを設定する
proxy_set_header : 変数を設定する関数
proxy_set_header Host $host; : リバースプロキシ(今回はNginx)から送られたの先のサーバーに送られるアドレスをNginxもとに設定
$host = 接続元、上にあるアドレスをそのまま転送する。
proxy_set_header X-Real-IP $remote_addr; : 元のIPアドレスをそのまま転送させる設定。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; : 受け取ったリクエストヘッダにXFFヘッダがなければ、XFFヘッダを作成してクライアントIPアドレスを値に設定してバックエンドにリクエストを送る。受け取ったリクエストヘッダにXFFがあれば、それにカンマ区切りでクライアントのIPアドレスを追加してバックエンドにリクエストを送る。
proxy_set_header X-Forwarded-Proto $scheme; : SSLが使われているか。SSLの情報をそのまま転送する。
コメント