Nginx(一)介绍Nginx、正向代理和实现反向代理的两个实例


一、Nginx介绍

 Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器
 具有内存占用少,启动极快,高并发能力强的优点、在互联网项目中广泛应用。
 一台nginx能承受大约5万个并发连接数。

中国Nginx官网:https://www.nginx-cn.net/
GitHub地址:https://github.com/nginxinc/

二、正向代理

在这里插入图片描述

 代理就是代理服务器介于用户客户端和目标服务器之间,
 正向代理就是用户指定想要获取的目标内容,通过客户端先向代理服务器发送请求,再由代理服务器发送到目标服务器,随后将获得的内容返回用户客户端。
 正向代理的情况下,客户端需要知道正向代理服务器的IP地址,还有代理程序的端口才可使用。
 正向代理是代理用户客户端,为客户端发送请求,使真实的用户客户端对服务器不可见。

三、反向代理

 反向代理刚好与正向代理相反。
 对于反向代理,客户端对代理是无感知的,
 因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,
 暴露的是代理服务器地址,隐藏了真实服务器IP地址。

在这里插入图片描述

客户端想访问tomcat服务器,只需要访问ww.baidu.com。对真实的服务器IP是隐藏的

四、实例演示

1、反向代理实例一(反向代理,访问www.123.com)

在这里插入图片描述

步骤一:修改主机映射“C:\Windows\System32\drivers\etc\hosts”

在这里插入图片描述在这里插入图片描述
步骤二:修改Nginx中的配置文件并启动

在这里插入图片描述发现报错
在这里插入图片描述
注意:我的nginx和tomcat都在Docker中,容器之间是相互隔离的。
127.0.0.1访问的nginx容器内部的8080端口,而此容器并没有tomcat所以肯定会报错

在这里插入图片描述注意:我的tomcat8080容器已经映射到虚拟机的8080端口,所以进行以下更改:
在这里插入图片描述
可以看到此时访问成功
在这里插入图片描述但是输入www.123.com(已经设置hosts端口映射)访问却报错
在这里插入图片描述解决方法:关闭windows本地代理
在这里插入图片描述
访问成功
在这里插入图片描述

2、反向代理实例二(使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中)

在这里插入图片描述
步骤一:为了区分Tomcat,对欢迎页面进行小改,修改webapps/ROOT/index.jsp
在这里插入图片描述在这里插入图片描述同理8081端口也是一样操作

步骤二:修改Nginx配置文件并重新启动Nginx
在这里插入图片描述
这里注意:

proxy_pass http://192.168.31.238:8080/;
proxy_pass最后面有斜杠”/”,此时通过浏览器请求http://http://192.168.31.238/edu/,那么实际访问的地址就是 http://192.168.31.238:8080,会将/edu抛弃的,
proxy_pass http://192.168.31.238:8080;
说明:proxy_pass最后面没有斜杠”/”,此时通过浏览器请求http://192.168.31.238/vod/,
那么实际访问的地址就是 http://192.168.31.238/vod/,会将匹配路径/vod一起加过去
注意:路径/usr/share/nginx/html/vod文件夹下需要有html文件才可以正常访问

步骤三:测试结果(成功)
在这里插入图片描述

在这里插入图片描述

五、nginx之location规则

  • = 开头表示精确匹配(优先级最高)
  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配url路径即可(非正则)
  • ~ 开头表示区分大小写的正则匹配
  • ~* 开头表示不区分大小写的正则匹配
  • !~ 和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则
  • / 通用匹配,任何请求都会匹配到

更多location实例可以参考:nginx之location详解

猜你喜欢

转载自blog.csdn.net/qq_45637894/article/details/131135591