本文目錄一覽:
nginx做反向代理負載均衡 Java怎麼獲取後端服務器獲取用戶IP
首先,在前端nginx上需要做如下配置:
location /
proxy_set_hearder host $host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
};
nginx會在把請求轉向後台real-server前把http報頭中的ip地址進行替換;這樣操作完成後,real-server也需要做一些操作;
public class ClientIPUtils {
/**
* 在很多應用下都可能有需要將用戶的真實IP記錄下來,這時就要獲得用戶的真實IP地址,在JSP里,獲取客戶端的IP地
* 址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid等
* 反向代理軟件就不能獲取到客戶端的真實IP地址了。
* 但是在轉發請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息。用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務器地址。
* @param request
* @return
*/
public static String getClientIp(HttpServletRequest request) {
String ip = request.getHeader(“x-forwarded-for”);
//String ip = request.getHeader(“X-real-ip”);
logger.debug(“x-forwarded-for = {}”, ip);
if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“Proxy-Client-IP”);
logger.debug(“Proxy-Client-IP = {}”, ip);
}
if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getHeader(“WL-Proxy-Client-IP”);
logger.debug(“WL-Proxy-Client-IP = {}”, ip);
}
if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
logger.debug(“RemoteAddr-IP = {}”, ip);
}
if(StringUtils.isNotBlank(ip)) {
ip = ip.split(“,”)[0];
}
return ip;
}
}
Nginx服務器如何配合Java開發項目
nginx不能直接和java搭配使用的,因為nginx不能解析java,nginx一般只想java服務器,
nginx指向tomcat,tomcat解析java
如何通過java代碼來修改nginx中的配置
修改nginx的默認頁有很多方法,下面介紹兩種:
(1)在location中通過index指令設置:此時如果訪問127.0.0.1nginx會請求/home/wangwei/webroot/index.html文件併產生響應
location ~ \.php$ {
root /home/wangwei/webroot;
index index.html;
fastcgi_pass a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBuW63mWnvPhDYm1FbuADY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHTvPWDzrjDL” target=”_blank” class=”baidu-highlight”127.0.0.1/a:9000;
include fastcgi.conf;
include fastcgi_params;
}
(2)通過rewrite指令重定向/請求
location ~ \.php$ {
root /home/wangwei/webroot;
index index.html;
fastcgi_pass a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBuW63mWnvPhDYm1FbuADY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHTvPWDzrjDL” target=”_blank” class=”baidu-highlight”127.0.0.1/a:9000;
include fastcgi.conf;
include fastcgi_params;
#重定向首頁.
rewrite “^/+$” /xxx.php break;
}
可以根據需要採用其中的任何一種。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/308462.html