nginx獲取伺服器ip
① 如何在兩層伺服器的第二層Nginx上獲取用戶IP
如何在兩層伺服器的第二層Nginx上獲取用戶IP
一.之前在做nginx的伺服器配置的時候遇到了一個問題,在之前伺服器有用到一個限制客戶端最大並發連接的功能,而且這個功能的實現是依靠在伺服器中做
[html] view plain
$remote-addr
這樣的配置來達到的。但在增加了前端一層(負載、CDN、防火牆、安全服務)伺服器之後,拿到的客戶端IP就都變成了前端伺服器的IP,而並非真是的用戶IP地址。
二.這樣的問題下,我又重新看了幾次nginx官網的介紹,也發現其中另外一個特別重要的變數
[html] view plain
$proxy_add_x_forwarded_for
這個變數是客戶端訪問請求中的X-forwarded-for 欄位的值,如果請求中不包含這個欄位,則自動用這個變數會等價於remote-addr這個變數。這允許我們獲取HTTP請求中通常情況下前端伺服器保存的客戶真實IP地址的欄位,通常就是我們說的X_FORWARDED_FOR欄位,然後通過這樣的方法,我們就可以實現各種各樣的功能了。
三.下面我來實際給大家做一個簡單演示。諸多不足,歡迎指正。
首先我們先搭建好Nginx的環境,這里我們使用1.7 系列的最新版本 1.7.9為例,(關於版本的問題參見FAQ 1)
下載、WGET所需地址 http://nginx.org/download/nginx-1.7.9.tar.gz
1. 下載Nginx
[lugt@localhostmysql]$ wget http://nginx.org/download/nginx-1.7.9.tar.gz
2. 解壓
[lugt@localhostmysql]$ tar zxvf nginx-1.7.9.tar.gz
3. 直接編譯(需要考慮是否需要openssl等插件的支持)
[lugt@localhost mysql]$cd nginx-1.7.9
[lugt@localhost nginx-1.7.9]$ ./configure
[lugt@localhost nginx-1.7.9]$ make
[lugt@localhost nginx-1.7.9]$ su
[[email protected]]$ make install
4. 然後接下來修改nginx.conf配置文件
[lugt@localhost nginx-1.7.9]$ su
[lugt@localhost nginx-1.7.9]$cd /usr/local/nginx
[lugt@localhostnginx]$ vi conf/nginx.conf
② nginx配置了負載均衡的訪問ip地址過後,那個ip地址不能訪問
報錯的url鏈接是:http://test/,把這個域名調通就能訪問了,如果僅僅只是配置php的話,建議配置php支持:
location~.*.(php|php5)?$
{
fastcgi_pass127.0.0.1:9000;//根據自己的fast_cgi監聽進行更改
fastcgi_indexindex.php;
includefastcgi.conf;
}
③ 如何隱藏nginx下web伺服器真實ip
基於各種原因,有時想隱藏nginx的顯示版本號,也為伺服器更安全有如下幾個方法1 修改主配置文件nginx.conf在http {段加入server_tokens off;保存退出就可以了2 也可以在編譯前修改源代碼,文件是src/core/nginx.h如果是已經安裝的,就可以再編譯安裝一次就可以
④ nginx 能獲取到真實ip嗎
http://blog.csdn.net/bigtree_3721/article/details/72820081希望能幫到你
⑤ nginx轉跳問題,nginx默認接受所有解析過來的域名,然後轉跳到指定的IP
給每個域名配置對應的虛擬主機
然後各自虛擬主機配置段中再配置相應的反向代理
⑥ nginx怎麼配置IP和域名都能訪問
一個nginx伺服器只能有一個虛擬主機允許IP訪問
只要在server_name最後面添加一個default,就可以在其他nginx沒有定義的域名下,使用當前server解析(例如,其他server都沒有定義ip地址作為server_name則用IP訪問會被打到default主機上)
⑦ nginx 怎麼配置 ip
工具原料:電腦+nginx
nginx 配置 ip方法如下:
一、將a和b兩個網站部署在同一台伺服器上,兩個域名解析到同一個IP地址,但是用戶通過兩個域名卻可以打開兩個完全不同的網站,互相不影響,就像訪問兩個伺服器一樣,所以叫兩個虛擬主機。
二、配置代碼如下:
三、在伺服器8080和8081分別開了一個應用,客戶端通過不同的域名訪問,根據server_name可以反向代理到對應的應用伺服器。
四、server_name配置還可以過濾有人惡意將某些域名指向主機伺服器。
⑧ nginx作前端代理,收取其它伺服器郵件時,後端postfix如何獲取郵件來源伺服器的真實ip
開啟ip hash試一下
⑨ nginx配置通過IP訪問返回靜態頁面
如果你以虛擬主機的方式在nginx上跑網站,就把默認的虛擬主機的主機名寫成ip地址 ,它的網站目錄下放錯誤信息提示頁面的html文件 。默認虛擬主機配置類似:
server {
listen 80;
server_name 192.168.1.12 default;
root D:\ServCode\www;
index index.html;
}
⑩ nginx如何獲取自己的ip
nginx這里作一個賦值操作,如下:
proxy_set_header
X-real-ip
$remote_addr;
其中這個X-real-ip是一個自定義的變數名,名字可以隨意取,這樣做完之後,用戶的真實ip就被放在X-real-ip這個變數里了,然後,在web端可以這樣獲取:
request.getAttribute(「X-real-ip」)