nginx反向代理初体验
nginx是一个反向代理服务器,那什么是反向代理?有反向代理就有正向代理,两者的区别是什么呢?
正向代理:在浏览器中配置代理服务器的相关信息,通过代理服务器访问⽬标⽹站,代理服务器收到⽬标⽹站的响应之后,会把响应信息返回给我们⾃⼰的浏览器客户端
方向代理:浏览器客户端发送请求到反向代理服务器(⽐如Nginx),由反向代理服务器选择原始服务器提供服务获取结果响应,最终再返回给客户端浏览器。
下面使用Nginx进行反向代理实战:
需求:部署两台tomcat,默认监听端口分别是8080和8081。访问nginx服务时,自动跳转到相应tomcat服务。
先部署一台机器:就宿主机上tomcat服务:
修改nginx配置:vim nginx.conf
重启nginx服务:nginx -s reload
验证:
再部署一台tomcat在虚拟机上(参考Linux系统安装tomcat9服务(含jdk的安装))
修改nginx配置:vim nginx.conf
重启nginx服务:nginx -s reload
验证:
以上实践案例中主要就是多location的使⽤,可以知道nginx中server/location就好⽐tomcat中的Host/Context。
location 语法为:
在nginx配置⽂件中, location主要有这⼏种形式:
1)正则匹配 location ~ /lifish { }
2)不区分⼤⼩写的正则匹配 location ~* /lifish { }
3)匹配路径的前缀 location ^~ /lifish { }
4)精确匹配 location = /lifish { }
5)普通路径前缀匹配 location /lifish { }
优先级:4 > 3 > 2 > 1 > 5