SZStudy 2020-06-08
在location中配置反向代理
例如:客户端访问:http://192.168.1.67:80/test.jsp
#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat
server {
listen 80;
server_name localhost;
location ~ \.jsp$ {
#设置真实的访问IP( X-real-ip名称可随意配置,访问的请求接收使用此名称获取真实IP)
proxy_set_header X-real-ip $remote_addr;
#代理请求的URI转发到指定的web服务器
proxy_pass http://192.168.1.67:8080;
}
}
web服务器(tomcat)
test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test Page</title> </head> <body> Test1 Page!!!<br/> <!-- request.getHeader("X-real-ip") 是实际地址 --> remote ip : <%=request.getHeader("X-real-ip") %> <br/> <!-- request.getRemoteAddr() 输出的是Nginx代理服务器地址--> nginx server ip : <%=request.getRemoteAddr()%> </body> </html>
某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题。比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作。