Debian 10 Buster
Sponsored Link

Nginx : リバースプロキシの設定2019/08/08

 
Nginx でのリバースプロキシの設定です。
[1] 例として、ホスト [www.srv.world] の Nginx 80 ポートで受けた HTTP アクセスを、バックエンドホスト [dlp.srv.world] の Nginx サーバーへ転送するよう設定します。
root@www:~#
vi /etc/nginx/sites-available/default
# server セクション内を以下のように変更

    server {
        listen      80 default_server;
        listen      [::]:80 default_server;
        server_name www.srv.world;

        proxy_redirect           off;
        proxy_set_header         X-Real-IP $remote_addr;
        proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header         Host $http_host;

        location / {
            proxy_pass http://dlp.srv.world/;
        }
    }

root@www:~#
systemctl restart nginx

[2] バックエンド Nginx サーバーで X-Forwarded-For ヘッダーをロギングするよう設定しておきます。
root@dlp:~#
vi /etc/nginx/nginx.conf
# http セクション内に log_format 設定追記

http {
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

root@dlp:~#
vi /etc/nginx/sites-available/default
# server セクション内に追記

# [set_real_ip_from] は自身の信頼できる内部ネットワークを指定

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        set_real_ip_from   10.0.0.0/24;
        real_ip_header     X-Forwarded-For;

root@dlp:~#
systemctl restart nginx

[3] 任意のクライアントホストからフロントエンドの Nginx サーバーへ HTTP アクセスして動作を確認します。 また、バックエンドの Nginx ログ [/var/log/nginx/access.log] にアクセス元のクライアントホストの IPアドレスがロギングされていることも確認しておくとよいでしょう。
関連コンテンツ