当前位置: 首页 > news >正文

nginx反向代理功能

如上图所示,当配置好nginx反向代理服务器的时候,客户端向nginx反向代理服务器发送请求,nginx反向代理服务器再向真实服务器转发请求。

nginx作为反向代理就是利用nginx高并发,速度快的特性,让nginx能够承受更多的链接。

一.location的写法

location的作用就是用来匹配客户端的访问请求,根据不同的访问请求,来让nginx服务器做不同的配置。

如上图所示,是location的相关写法,

如上图所示,大括号之外的是如何匹配请求,而大括号里面的是如何去处理请求,

第一种location匹配方式代表接收所有匹配请求,

第二种location匹配方式代表只接受http://x.x.x.x/这样访问网站首页的请求。


如上图所示,这是一种正则表达式的匹配规则,表示的是只要是/test即可,跟我这个虚拟主机的location匹配,

如上图所示,最后的一个是用来匹配/test的所有请求。

一个虚拟主机中可以有多个location,当一个客户端请求可以匹配多个location的时候,这时候就涉及到了匹配优先级的问题。

非常关键:location的优先级问题

优先级:从高到底

=,^~,~,~*,location  /

在虚拟主机中,同一访问请求新加的location比旧的location优先级要低。

如上图所示,第一个精确匹配首页的,

第二个是能够匹配客户端所有访问请求的,

第三个是能够匹配客户端请求中带有/documents/的,

第四个是能够匹配以/images开头的请求,

第五个是能够以正则表达式的方式去匹配以gif,jpg,jpeg结尾的请求。

如上图所示,这个location的意思是只要访问请求中带有\.ht的请求,就都拒绝访问。

案例:配置一个错误页面

如上图所示,这是编写了一个错误页面,当出现500,502,503,504的错误的时候,就返回/50x.html页面,通过location,进行匹配,当确定返回/50x.html页面的时候,使用location大括号里面的内容进行回应。

如上图所示,这个50x.html页面是在这个网页目录下。

如上图所示,这是在虚拟主机的配置文件中进行配置错误页面。

如上图所示,这是在配置好错误页面之后,进行检查nginx配置文件有无语法错误,随后使得nginx重新识别配置文件。

二.nginx反向代理配置【基于http协议的反向代理】

当nginx接受到一个请求,就把这个请求转交给后端的网站服务器进行处理。

location{

proxy_pass 后端服务器;

}

这个的意思就是当nginx接受到这个请求之后,将这个请求交给后端服务器进行处理,nginx服务器并不直接给客户端响应。

案例1:配置nginx将所有请求转交给后端服务器。

如上图所示,这是安装一个阿帕奇将这个服务器当作一个后端服务器去使用。

如上图所示,此时去访问阿帕奇是没有问题的。随后我们去使用nginx充当反向代理。

如上图所示,这是到nginx的虚拟主机的配置文件中去做相应的修改操作。

当客户端访问nginx的这个虚拟主机的时候,会将访问请求交给阿帕奇,这个后端服务器。

如上图所示,随后让nginx重新识别配置文件。

案例2:将/test1请求转交给后端服务器

如上图所示,这是在阿帕奇机器上创建的新的网站首页。

如上图所示,这是nginx虚拟主机的配置文件进行的修改,当客户端的访问请求是网站目录/test1的时候,就会把这个访问请求交给阿帕奇响应。

如上所示,这是让nginx本地响应一部分请求,还有让阿帕奇响应一部分请求。

1.定义location,如果明确的写了uri地址,反向代理时也要具体的uri地址。

nginx在做反向代理的时候,会有一个默认行为,如果服务器地址后面不跟上明确的uri地址,那么就会默认把location后面的uri地址,写在服务器地址后面。

如上图所示,这个的意思就是我要把/vedio的请求交给服务器地址的/vedio进行处理。

如上图所示,我们要求把192.168.183.10的/test2请求交给192.168.183.11的首页进行处理,那么必须在机器地址后面加上左斜杠。

2.定义location如果使用正则表达式,反向代理时只能写到后端服务器地址结束。【后面不能跟任何的uri地址。】

如上图所示,当location中含有正则表达式的时候,服务器地址后面不能跟上任何的uri地址。

这就意味着在后端服务器上的网页目录下,就必须有这个test3地址。

如上图所示,这是在后端服务器的网页目录下新创建访问目录,随后在这个访问目录下,创建网站首页。

3.配置后端服务器记录真实客户端地址【这行配置在反向代理服务器上所有的location都要加上。】

1.在请求中添加真实客户端地址的字段

如上图所示,后端服务器阿帕奇的日志中记录的IP地址都是nginx反向代理服务器的地址,

如上图所示,这行配置的目的是后端服务器能够真实记录下客户端IP地址。

如上图所示,这是nginx内部的一个变量,这个变量中保存的是真实客户端地址,

这行配置的意思就是,当nginx将客户端的访问请求交给后端服务器之前,在访问请求上多加上真实客户端的IP地址。

2.修改阿帕奇日志访问格式combined

如上图所示,想要记录下真实客户端的IP地址,不仅需要在nginx反向代理服务器上做操作,还需要在阿帕奇的配置文件上做操作。

随后重启httpd软件,此时阿帕奇访问日志中记录的就是真实客户端的IP地址了。

相关文章:

  • LeetCode1871 跳跃游戏VII
  • 江协科技/江科大-51单片机入门教程——P[5-1] 模块化编程 P[5-2] LCD1602调试工具
  • 用Python写一个算24点的小程序
  • 在【k8s】中部署Jenkins的实践指南
  • CTFHub-FastCGI协议/Redis协议
  • 最新版本WebContext构造函数-避坑
  • 推理大模型的后训练增强技术-强化学习篇
  • LeetCode 哈希章节
  • Unity入门学习笔记(Day01)
  • JWT的学习
  • 探索大数据分析的无限可能:R语言的应用与实践
  • 远程登录客户端软件 CTerm 发布了 v4.0.0
  • PySide(PyQT)的contains() 方法
  • javascrip网页设计案例,SuperSlide+bootstrap+html经典组合
  • Docker中GPU的使用指南
  • 论文阅读笔记——Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
  • 【C++指南】一文总结C++类和对象
  • Primer - 自适应学习,AI学习工具
  • 从 GitHub 批量下载项目各版本的方法
  • 2025 cv2.imwrite存储带有中文路径
  • 专访|导演刘江:给谍战题材注入现实主义的魂
  • 万科:存续债券均正常付息兑付
  • “降息潮”延续,多家民营银行下调存款利率
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 梅花奖在上海|穿上初演时的服装,“鹮仙”朱洁静再起飞
  • 法治日报:炮制师生日常剧本,校园怎么成了短视频流量秀场?