Nginx反向代理(单Server多端口实现)
1 需求
实现通过同一个域名根据不同接口访问分别Tomcat和Apache服务器
2 反向代理实现思路
3 开发环境准备
注意:Tomcat直接使用Springboot内置Tomcat
4 实现步骤
a) 利用Springboot快速搭建Tomcat服务器
b) 安装并搭建Apache服务器
c) 配置域名
d) 配置Nignx
e) 进行测试
5 实现细节
5.1 利用Springboot快速搭建Tomcat服务器
5.1.1 搭建工程
5.1.2 编写Controller
注意:启动类不能在基包中
@RestController
public class TomcatController {
@RequestMapping("/find")
public void find(){
System.out.println(“Tomcat被访问到了”);
}
}
5.1.3 配置Tomcat端口号 和 根路径
5.1.4 启动工程
5.2 安装并搭建Apache服务器
参考https://blog.csdn.net/Vigil5254/article/details/79688394
5.3 配置域名(此处我们使用域名控制工具SwitchHost)
5.4 配置Nignx
5.4.1 找到我们的Nginx.config
5.4.2 在http {。。。。。}中加入一下server配置
server {
listen 80;
server_name www.yunxiu.com;
#Tomcat
#当url中的虚拟目录以/Tomcat/开头,则代理到http://127.0.0.1:8081/demo/
location /Tomcat/{
index index.html index.htm index.jsp;
proxy_pass http://127.0.0.1:8081/demo/;
#传递客户端IP
proxy_set_header X-Real-IP $remote_addr;
#服务器名称和端口一起通过代理服务器传递
proxy_set_header Host
h
o
s
t
:
host:
host:server_port;
}
#Apache
#当url中的虚拟目录以/apache/开头,则代理到http://127.0.0.1:8082/
location /apache/ {
index index.html index.htm index.jsp;
proxy_pass http://127.0.0.1:8082/;
#传递客户端IP
proxy_set_header X-Real-IP $remote_addr;
#服务器名称和端口一起通过代理服务器传递
proxy_set_header Host
h
o
s
t
:
host:
host:server_port;
}
}
注意: http://127.0.0.1:8081/demo/ 注意最后面红色斜杠必须加上,如果不加上,当我们访问www.yunxiu.com/Tomcat/的时候会被代理到http://127.0.0.1:8081/demo/Tomcat/ 导致404。
参考:
https://www.cnblogs.com/kevingrace/p/6566119.html
5.5 测试
5.5.1 启动Tomcat服务器
5.5.2 启动Apache服务器
5.5.3 开启Nginx
5.5.4 测试Tomcat
访问url :http://www.yunxiu.com/Tomcat/find
可以看到Tomcat被成功访问
5.5.5 测试Apache服务器
访问url: http://www.yunxiu.com/apache/index.html
可以看到Apache服务器中静态资源被成功访问