nginx轉(zhuǎn)發(fā)白名單配置如下:
location /files/upload/activity/thesis/29/ {
? ? # IP白名單
? ? allow 192.168.1.0/24;
? ? allow? 公網(wǎng)地址;
? ? deny all;
? ? # 使用 root
? ? root /home/app;
? ? # 請求 /files/upload/activity/thesis/29/document.zip??# → /home/app/files/upload/activity/thesis/29/document.zip
}
遇到的問題是:內(nèi)網(wǎng)測試沒有問題,雖然添加了公網(wǎng)的白名單,但是測試依然不能訪問
造成的原因:nginx前面存在安全防護(hù)工具,真實IP變量,造成添加公網(wǎng)白名單依然不能訪問
解決方法:
在http中添加如下信息
#定義可信代理的IP地址或網(wǎng)絡(luò)段,可以多次使用此指令來添加多個可信代理
set_real_ip_from 192.168.0.0/16;? ?
#指定包含真實客戶端IP的HTTP頭字段,
real_ip_header X-Forwarded-For;
#啟用或禁用遞歸搜索真實 IP,off(默認(rèn)):使用?real_ip_header?指定的頭中的最后一個IP,on:從右向左查找第一個不在?set_real_ip_from?中的 IP
real_ip_recursive on;
這些指令用于設(shè)置Nginx的真實客戶端IP模塊,告訴Nginx信任來自192.168.0.0/16網(wǎng)段的代理,并且使用X-Forwarded-For頭來獲取真實IP,同時啟用遞歸搜索(從右至左查找第一個不信任的IP作為真實IP)
再配合上面location中的配置,完美解決白名單添加問題。