Nginx中代理的上下文路径设置

Nginx中代理的上下文路径设置

实际配置nginx的时候,在Location段中配置的路径(request_uri)以及代理指令(proxy_pass)中设置的上下文路径的组合不同,最后实现的结果就不一样。

例子:
  • 加入请求nginx服务的URL都为: http://10.10.1.72:8088/abc/system/commom

Case 1: Location后的上下文路径为"/api",代理路径的上下文路径为 空

location /abc{
    proxy_pass http://10.10.1.90:8080;
    proxy_rediect off;
}
  • 代理过程: 将schema(http),host,port替换,其他URI都不变,然后发送到web服务器。
  • 客户端请求URL: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/abc/system/commom

Case 2: Location后的上下文路径为"/abc",代理路径的上下文路径为 “/”

location /abc{
    proxy_pass http://10.10.1.90:8080/;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,除了替换host,port替换,把"/abc"替换为代理路径上下文路径"/"
  • 客户端请求URL: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080//system/commom

Case 3: Location后的上下文路径为"/abc/",代理路径的上下文路径为 空

location /abc/{
    proxy_pass http://10.10.1.90:8080;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,把请求的ip和port替换为代理服务的ip和port,对应的URi不变
  • 客户端请求URL: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/abc/system/commom

Case 4: Location后的上下文路径为"/abc/",代理路径的上下文路径为 “/”

location /abc/{
    proxy_pass http://10.10.1.90:8080/;
    proxy_rediect off;
}
  • 代理过程: 按照请求路径中的/abc匹配到了对应的代理后,除了把请求的ip和port替换为代理服务的ip和port,把"/abc/“替换为”/“,而”/abc/"之后的路径不变。
  • 客户端请求URL: http://10.10.1.72:8088/abc/system/commom
  • 代理结果: http://10.10.1.90:8080/system/commom
总结:
  1. 如果代理proxy_pass只有ip和host,没有上下文,则代理过程只替换nginx请求的ip和port,其余部分不变。
  2. 如果代理proxy_pass除了ip和host,还有上下文,则代理过程中,除了替换ip和port之外,还会将location的路径修改为porxy_pass中的上下文,然后将剩余路径拼接。
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Nginx,可以通过添加上下文来扩展其功能。上下文是一组指令的集合,用于配置Nginx服务器的不同方面。下面是一些常见的Nginx上下文: 1. `http` 上下文:这是Nginx配置文件的最外层上下文,用于配置全局的HTTP服务器设置,如HTTP请求和响应的缓冲区大小、日志格式、默认的MIME类型等。 2. `server` 上下文:在`http`上下文内部,可以定义多个`server`上下文,每个`server`上下文代表一个虚拟主机。在每个`server`上下文,可以配置该虚拟主机的监听端口、域名、SSL证书等。 3. `location` 上下文:在每个`server`上下文内部,可以定义多个`location`上下文,用于匹配特定的URL路径,并配置相应的处理方式。例如,可以配置某个URL路径代理、反向代理、重定向、缓存等。 4. `if` 上下文:在`location`上下文内部,可以使用`if`指令来进行条件判断,并根据条件执行不同的操作。但是需要注意,尽量避免在Nginx配置过多地使用`if`指令,因为它可能会导致配置复杂性和性能问题。 5. `upstream` 上下文:用于配置Nginx的负载均衡策略。在`http`上下文内部,可以定义多个`upstream`上下文,每个`upstream`上下文代表一个后端服务器组。可以配置不同的负载均衡算法、后端服务器的权重等。 这些是Nginx常见的上下文,通过在配置文件添加相应的上下文和指令,可以实现对Nginx服务器的灵活配置和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值