nginx反向代理目的是实现外网直接访问内网的内容的一种方式。
话不多说。
由于是本地演示我这边本地启动两个tomcat 一个挂在8080端口、一个挂在8081端口
tomcat改端口这边就不写了
第一步:
修改本地host文件(C:\Windows\System32\drivers\etc下)增加两个域名的映射,都映射到本地locahost
127.0.0.1 www.taotao.com
127.0.0.1 www.haha.com
第二步:
修改nginx配置文件,增加代理配置信息
include reverse-proxy.conf;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
这里引入了一个reverse-proxy.conf的代理配置,该配置与nginx.cof在同一目录中,具体信息如下:
server {
listen 80;
server_name www.taotao.com; # 这是外网访问进来时的连接地址
location /{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080; # 收到 server_name 定义的连接之后,会转发到这个连接里面
#proxy_pass http://tomcat;
}
#access_log logs/tomcat1_access.log;
}
server {
listen 80;
server_name www.haha.com; # 这是外网访问进来时的连接地址
location /{
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8081; # 收到 server_name 定义的连接之后,会转发到这个连接里面
#proxy_pass http://tomcat;
}
#access_log logs/tomcat1_access.log;
}
上面的配置的意思是当访问路径为www.taotao.com的时候会经proxy_passs转到 http://localhost:8080上。
另一个访问路径www.haha.com会转到http://localhost:8081上
第三步:
此时正常启动nginx,以及两个tomcat
当浏览器访问www.taotao.com时:
当浏览器访问www.haha.com时:
这样就实现了通过不同域名访问同一服务器上的不同项目,反向代理ok!