欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

 更新時(shí)間:2014年08月16日 19:34:15   投稿:mdxy-dxy  
因?yàn)閚ginx的優(yōu)越性,現(xiàn)在越來越多的用戶在生產(chǎn)環(huán)境中使用nginx作為前端,不管nginx在前端是做負(fù)載均衡還是只做簡單的反向代理,都需要把日志轉(zhuǎn)發(fā)到后端real server,以方便我們檢查程序的各種故障

nginx默認(rèn)配置文件里面是沒有進(jìn)行日志轉(zhuǎn)發(fā)配置的,這個(gè)需要我們自己手動(dòng)來操作了,當(dāng)然后端的real server不同時(shí)操作方法是不一樣的,這里我們分別例舉幾種情況來說明一下。

nginx做前端,轉(zhuǎn)發(fā)日志到后端nginx服務(wù)器:

因?yàn)榧軜?gòu)的需要采用多級(jí) Nginx 反向代理,但是后端的程序獲取到的客戶端 IP 都是前端 Nginx 的 IP,問題的根源在于后端的 Nginx 在 HTTP Header 中取客戶端 IP 時(shí)沒有取對(duì)正確的值。
同樣適用于前端是 Squid 或者其他反向代理的情況。

首先前端的 Nginx 要做轉(zhuǎn)發(fā)客戶端 IP 的配置:

location / {
proxy_pass http://localhost:8000;
 
# Forward the user's IP address to Rails
proxy_set_header X-Real-IP $remote_addr;
# needed for HTTPS
# proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}

后端的 Nginx 需要安裝一個(gè) Module: NginxHttpRealIpModule,編譯的時(shí)候默認(rèn)不包含此 Module,需要重新編譯安裝 Nginx,configure 的時(shí)候加上 –with-http_realip_module,Nginx 升級(jí)或者添加/刪除 Module 時(shí)支持熱切換,可以避免中斷服務(wù)。

升級(jí)后配置 NginxHttpRealIpModule,set_real_ip_from 就是指前端 Nginx 或者 Squid 的 IP:

location / {
proxy_pass http://localhost:8000;
 
# Forward the user's IP address to Rails
proxy_set_header X-Real-IP $remote_addr;
# needed for HTTPS
# proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
# NginxHttpRealIpModule
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;
}

最后記得 reload Nginx config

nginx做前端,轉(zhuǎn)發(fā)日志到后端apache服務(wù)器:

apache日志中默認(rèn)有%h來指定來訪客戶端你的ip地址,但是使用了nginx代理上網(wǎng)則%h獲得的ip地址會(huì)不準(zhǔn)。
這就需要對(duì)nginx 和apache的配置文件設(shè)定 X-Forwarded-For 參數(shù)來獲取客戶端真實(shí)的ip地址。對(duì)于使用了反向代理的客戶端,跟蹤真實(shí)的ip地址。
/usr/nginx/conf/nginx.conf 添加以下參數(shù):

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;

同時(shí)修改:

server {
   listen 80;
   server_name 域名 ;
   proxy_redirect off; 
    location / {
     proxy_set_header  X-Forwarded-For $remote_addr;
     proxy_set_header  X-Forwarded-Host $server_name;
     proxy_set_header Host $host;
     proxy_pass http://域名;
   }
   access_log off;
 }

重啟nginx使配置生效。
 
apache端需要安裝一個(gè)第三方模塊"mod_rpaf"了, 官方網(wǎng)站: http://stderr.net/apache/rpaf/

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz 
tar zxvf mod_rpaf-0.6.tar.gz 
cd mod_rpaf-0.6 
/opt/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

修改apache配置 /usr/apache2/conf/httpd.conf

LoadModule rpaf_module modules/mod_rpaf-2.0.so 
RPAFenable On 
RPAFsethostname On 
RPAFproxy_ips ip地址  #Nginx所在服務(wù)器的IP
RPAFheader X-Forwarded-For

重啟apache 查看日志就可以看見日志中已經(jīng)獲得到真實(shí)ip了。

nginx做前端,轉(zhuǎn)發(fā)日志到后端IIS服務(wù)器:

  iis 如果放在反向代理后面,日志里的ip是反向代理服務(wù)器的ip,不是真正用戶的ip,想要記錄用戶的ip要做兩件事。

1.在反向代理設(shè)置X-Forwarded-For段,以下為nginx下的配置示例:

server
{
  location
 ?。?
  ……
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  ……
 ?。?
}

2.在iis站點(diǎn)上安裝下面這個(gè)isapi filter,這東西是在f5的開發(fā)論壇上找到的,按開發(fā)者的話說,是為了解決iis放在f5后記錄不到用戶ip的問題,-_-# 管他前端是f5還是nginx還是squid還是haproxy。都可以用。應(yīng)該不錯(cuò)。裝完之后重啟下iis就搞定了。
   http://devcentral.f5.com/weblogs/Joe/archive/2009/08/19/x_forwarded_for_log_filter_for_windows_servers.aspx
   回頭看下iis的日志,里面的ip已經(jīng)是用戶的真實(shí)ip了。

相關(guān)文章

  • 通過瀏覽器查看nginx服務(wù)器狀態(tài)配置方法

    通過瀏覽器查看nginx服務(wù)器狀態(tài)配置方法

    這篇文章主要介紹了通過瀏覽器查看nginx服務(wù)器狀態(tài)配置方法,本文講解開啟nginx-status的配置方法,并對(duì)服務(wù)器的參數(shù)做了詳細(xì)講解,需要的朋友可以參考下
    2015-04-04
  • nginx安裝vsftpd最簡流程

    nginx安裝vsftpd最簡流程

    給大家分享一下在nginx環(huán)境中最簡單的安裝vsftpd的流程,初學(xué)者跟著學(xué)習(xí)下吧。
    2017-12-12
  • windows下nginx如何操作命令

    windows下nginx如何操作命令

    這篇文章主要介紹了windows下nginx如何操作命令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Nginx權(quán)限控制文件的預(yù)覽和下載方式

    Nginx權(quán)限控制文件的預(yù)覽和下載方式

    這篇文章主要介紹了Nginx權(quán)限控制文件的預(yù)覽和下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式)

    詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式)

    本篇文章主要介紹了詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • nginx配置文件不使用緩存的方法

    nginx配置文件不使用緩存的方法

    使用Nginx作為Web緩存服務(wù)器,能有效減少數(shù)據(jù)傳輸、節(jié)省網(wǎng)絡(luò)流量、加快響應(yīng)速度、減輕服務(wù)器壓力、提高服務(wù)端可用性,本文就來介紹一下nginx配置文件不使用緩存的方法,感興趣的可以了解一下
    2024-11-11
  • Nginx配置防盜鏈的完整步驟

    Nginx配置防盜鏈的完整步驟

    這篇文章主要給大家介紹了關(guān)于Nginx配置防盜鏈的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • nginx禁止dedecms目錄php執(zhí)行權(quán)限

    nginx禁止dedecms目錄php執(zhí)行權(quán)限

    nginx禁止dedecms目錄php執(zhí)行權(quán)限,找到配置fastcgi.conf文件,一般在/usr/local/nginx/conf/下面,修改如下
    2014-01-01
  • 基于Nginx+lua實(shí)現(xiàn)簡單的XSS攻擊攔截

    基于Nginx+lua實(shí)現(xiàn)簡單的XSS攻擊攔截

    WAF即web應(yīng)用防火墻,Nginx是一個(gè)主流的代理服務(wù),除了本身的Nginx日志,作為用戶肯定也支持對(duì)請(qǐng)求信息進(jìn)行操作,?很多都是通過在代理服務(wù)器上掛載規(guī)則特征,實(shí)現(xiàn)軟件層面的軟WAF進(jìn)行WEB防護(hù),本文主要給大家介紹了Nginx+Lua實(shí)現(xiàn)一個(gè)簡單的XSS攻擊攔截,需要的朋友可以參考下
    2024-01-01
  • Nginx代理MySQL實(shí)現(xiàn)通過域名連接數(shù)據(jù)庫的詳細(xì)教程

    Nginx代理MySQL實(shí)現(xiàn)通過域名連接數(shù)據(jù)庫的詳細(xì)教程

    我們的生產(chǎn)環(huán)境基本上都部署在云服務(wù)器上,例如應(yīng)用服務(wù)器、MySQL服務(wù)器等,如果MySQL服務(wù)器直接暴露在公網(wǎng),就會(huì)存在很大的風(fēng)險(xiǎn),為了保證數(shù)據(jù)安全,MySQL服務(wù)器的端口是不對(duì)外開放的,所以本文介紹了Nginx代理MySQL實(shí)現(xiàn)通過域名連接數(shù)據(jù)庫的詳細(xì)教程
    2024-07-07

最新評(píng)論