Nginx之代理模块 ngx_http_proxy_module

本文介绍了Nginx的正向代理和反向代理概念,正向代理隐藏了真实客户端信息,而反向代理隐藏了服务器信息,常用于服务器集群。Nginx的代理功能主要通过ngx_http_proxy_module实现,并列举了相关参数如proxy_pass和proxy_set_header,还提及了反向代理的常用优化配置和局限性。
摘要由CSDN通过智能技术生成

正向代理

正向代理是指位于客户机(A)和站点服务器(B)之间的代理服务器(C),为了从站点服务器(B)获取资源,客户机(A)向代理服务器(C)发送请求并指定站点服务器(B),然后代理服务器(C)向站点服务器(B)转交请求并将获取的资源返回给客户机(A)。
在这里插入图片描述

上述这样的代理模式称为正向代理,正向代理最大的特点

  • 客户端非常明确要访问的服务器地址;
  • 服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;
  • 正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理

客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色。

反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

在这里插入图片描述
代理区别: 区别在于代理的对象不一样

  • 正向代理代理的对象是客户端
  • 反向代理代理的对象是服务端(常用)

Nginx代理服务支持协议

Nginx作为代理服务,可支持的代理协议非常的多,具体如下图:
在这里插入图片描述
如果将Nginx作为反向代理服务,常常会用到如下几种代理协议,如下图所示:
在这里插入图片描述
反向代理模式与Nginx代理模块:

反向代理模式 Nginx配置模块
http、websocket、https ngx_http_proxy_module
fastcgi ngx_http_fastcgi_module
uwsgi ngx_http_uwsgi_module
grpc ngx_http_v2_module

ngx_http_proxy_module 模块

Nginx 基于http协议的代理功能是通过 ngx_http_proxy_module 模块来实现的。默认在安装 Nginx 时已经安装了ngx_http_proxy_module模块,因此可直接使用 ngx_http_proxy_module 模块。

相关参数

  1. proxy_pass
proxy_pass URL; 
将请求转发到另一台服务器,在实际的反向代理工作中,会通过 location 功能匹配指定的 URI,然后把接收到的符合匹配 URI 的请求通过 proxy_pass 抛给定义好的upstream节点池(后端服务节点)。
    可用位置:location, if in location, limit_except 
    
   proxy_pass转发的路径问题
    第一种:proxy_pass后面的url加/,表示绝对根路径,不会代理location后的路径;
    	假设用URL:http://localhost/web/test.html 进行访问。
		location /web/ {
   
   		 	proxy_pass http://192.168.1.2:8080/;
		}
		# 代理到URL:http://192.168.1.2:8080/test.html

    第二种:相对于第一种,最后少一个 / ,则会把location后的路径代理进去	
		location /web/ {
   
    		proxy_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值