1. 程式人生 > >後端Apache獲取前端Nginx反向代理的真實IP地址 (原創貼-轉載請註明出處)

後端Apache獲取前端Nginx反向代理的真實IP地址 (原創貼-轉載請註明出處)

====================說在前面的話====================

環境:前段Nginx是反向代理伺服器;後端是Apache是WEB專案伺服器

目的:讓後端Apapche獲取訪問者真實IP地址,而非是反向代理地址

=====================現在開幹======================

第一:Nginx配置

           ①:編輯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配置

           說明:Apache獲取真實IP地址有2個模組:mod_rpaf:Apache-2.2支援;Apache-2.4不支援;mod_remoteip:Apache-2.4自帶模組;Apache-2.2 支援,本次 實驗使用mod_remoteip

           ①:動態載入mod_remoteip模組

            編輯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