nginx.. i'm love it.
先來 review 我自己 po 過的相關文章
看不到額頭的故事
LNMP (沒梗了)
貧民的 f5
nginx 調校
google search
`2be nginx`
這篇文章的由來就是來至於我拿 nginx 來當 proxy 時發生的問題..
如何使用代理伺服器又可以讓後面的伺服器取得真正 User 的 REMOTE_ADDR
而不是一直抓到 proxy 的 IP 位置
(這怎麼 log..
那怎麼辦..
先敘述一下我所使用的架構
nginx(proxy),apache(ap)
所以我必須讓 ap 取得使用者端的 IP 資訊
而 proxy 則必須幫我轉送這份資料
so..
那怎麼做
以 os 下以 debian 系列為主
首先要在你的 web server 執行下面的指令
#aptitude search rpaf
module for Apache2 which takes the last IP from the 'X-Forwarded-For' header
然後將他 install 起來
#aptitude install rpaf
接下來連到 proxy 設定一下
nginx 啟動時會自動把 /etc/nginx/conf.d 下的 *.conf 載入
所以切到這資料夾寫 conf 才比較不會把設定全部寫在一塊
#vi /etc/nginx/conf.d/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 30;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
黃色框起來的地方才是這次的重點
薑黃色框的設定加入 proxy.conf
然後 reload nginx
接下來就是 apache mod_rpaf 了
連至 web server
#vi /etc/apache2/mods-enabled/rpaf.conf
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 223.33.13.3 10.2.3.1 (proxy server ip)
在執行 apache2ctl graceful ..
在去看一下 apache log 就可以看見效果了
至於 proxy.conf 其他設定為調效用的
下篇在補上
相關參考:
http://maxgarrick.com/reverse-proxy-with-nginx/