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アドレスがロギングされていることも確認しておくとよいでしょう。 |
Sponsored Link |