Nginxでリバースプロキシを行ってみた。[ubuntu]

Dev
この記事は約4分で読めます。

概要

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の情報をそのまま転送する。

コメント

タイトルとURLをコピーしました