tmtongming 2019-08-26
先来理解一波概念,什么是nginx反向代理?
反向代理的意思是以代理服务器(这里也就是nginx)来接收网络上的请求,也就是url(默认是80端口),
1,nginx通过对url里面的一些判断(转达规则配置在nginx配置文件中),比如端口号(nginx默认是80)有可能是对二级域名来判断
比如test1.baidu.com,test2.baidu.com,这就是两个二级域名,这里的一级域名也就是baidu.com,DNS会将这两个域名都解析到同一个ip(需要添加二级域名解析才行(阿里云需要在域名解析中添加解析即可,不同的域名,可解析到统一ip的服务器上),也可以分别解析到不同ip)
2,nginx配置反向代理后可以将不同二级域名的请求转发到不同的可以提供相应服务的端口或者ip和端口
也就是说,你在浏览器分别输入test1.baidu.com
test2.baidu.com再回车,真实访问的端口(或ip,这取决于你nginx里面转发规则的配置)是不一样的,得到的服务也是不一样的 (这是在nginx得到配置文件中根据不同的域名或者请求路径来转发请求到不同的ip、端口上的项目);
还是上网截个图吧:client:就是客户端浏览器,可以使移动浏览器,也可以是pc浏览器
那团蓝色的云,就是网络
反向代理服务器:配置了nginx的服务器
web服务器,文件服务器 ---提供服务的tomcat,或者其他容器(部署了web项目的),这些服务器通常在同一个局域网中
说白了,就是外网都是访问同一个端口(80),通过nginx转发到内网提供不同服务的不同端口上
这样是不是说,端口只需要开放80,可以关闭8080了?
我去阿里云测试一下:
关闭8080后,
修改nginx的default.conf这个文件
wq保存修改后,从起nginx : service nginx restart
这样就是可以了
某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题。比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作。