==========================說在前面的話==============html
環境:前段Nginx是反向代理服務器;後端是Apache是WEB項目服務器前端
目的:讓後端Apapche獲取訪問者真實IP地址,而非是反向代理地址nginx
==============如今開幹==============apache
第一:Nginx配置vim
①:編輯nginx虛擬主機配置文件。(由於我引用了虛擬主機單獨配置文件,因此修改的不是nginx.conf)後端
vim /usr/local/nginx/conf/conf.d/vhos_blog.conf
②:在虛擬主機標籤內添加以下語句:服務器
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;
第二:Apache配置ide
說明:Apache獲取真實IP地址有2個模塊:mod_rpaf:Apache-2.2支持;Apache-2.4不支持;mod_remoteip:Apache-2.4自帶模塊;Apache-2.2 支持,本次 實驗使用mod_remoteippost
①:動態加載mod_remoteip模塊spa
編輯httpd.conf文件
vim /usr/local/apache/conf/httpd.conf
找到以下代碼,去掉#號註釋使其生效
#LoadModule remoteip_module modules/mod_remoteip.so
②:在httpd.conf中加入以下代碼,用Nginx的真實地址替換代碼中的127.0.0.1
RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 127.0.0.1
③:在httpd.conf中找到
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
將日誌格式中的h%改爲a%
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined