反向代理适用于很多场合,负载均衡是最普遍的用法。

nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。

当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx在80端口监听所有请求,并依据转发规则(比较常见的是以 URI 来转发)转发到对应的web服务器上。

例如有 webmail , webcom 以及 webdefault 三个服务器分别运行在 portmail , portcom , portdefault 端口,要实现从80端口同时访问这三个web服务器,则可以在80端口运行 nginx, 然后将 /mail 下的请求转发到 webmail 服务器, 将 /com下的请求转发到 webcom 服务器, 将其他所有请求转发到 webdefault 服务器。

假设服务器域名为example.com,则对应的 nginx http配置如下:

http {

server {

server_name example.com;

location /mail/ {

proxy_pass http://example.com:protmail/;

}

location /com/ {

proxy_pass http://example.com:portcom/main/;

}

location / {

proxy_pass http://example.com:portdefault;

}

}

}

以上的配置会按以下规则转发请求( GET 和 POST 请求都会转发):

将 http://example.com/mail/ 下的请求转发到 http://example.com:portmail/

将 http://example.com/com/ 下的请求转发到 http://example.com:portcom/main/

将其它所有请求转发到 http://example.com:portdefault/

需要注意的是,在以上的配置中,webdefault 的代理服务器设置是没有指定URI的,而 webmail 和 webcom 的代理服务器设置是指定了URI的(分别为 / 和 /main/)。

如果代理服务器地址中是带有URI的,此URI会替换掉 location 所匹配的URI部分。

而如果代理服务器地址中是不带有URI的,则会用完整的请求URL来转发到代理服务器。

官方文档描述:

If the URI is specified along with the address, it replaces the part of the request URI that matches the location parameter.

If the address is specified without a URI, or it is not possible to determine the part of URI to be replaced, the full request URI is passed (possibly, modified).

以上配置的转发示例:

http://example.com/mail/index.html -> http://example.com:portmail/index.html

http://example.com/com/index.html -> http://example.com:portcom/main/index.html

http://example.com/mail/static/a.jpg -> http://example.com:portmail/static/a.jpg

http://example.com/com/static/b.css -> http://example.com:portcom/main/static/b.css

http://example.com/other/index.htm -> http://example.com:portdefault/other/index.htm

转自:http://blog.csdn.net/tobacco5648/article/details/51099426

nginx请求转发被拒绝_nginx反向代理(请求转发-URL匹配规则)相关推荐

  1. 使用Nginx为TCP/WebSocket协议做反向代理和几个易踩的坑

    通常,我们使用Nginx为后端WEB服务做反向代理或负载均衡,但如果我们的后端服务,并不是HTTP/HTTPS协议,而是TCP协议或WebSocket协议呢 最近遇到一个需求,我们的HTTPS以及MQ ...

  2. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  3. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...

    实验目标: 1.反向代理服务器将用户请求负载均衡到后端tomcat节点: 2.配置基于nginx的负载均衡,实现会话绑定: 3.配置基于mod_jk的负载均衡,实现会话绑定: 4.基于mod_prox ...

  4. Laravel 和 Dcat Admin 在使用 Nginx 进行 Uri 二级目录的反向代理时遇到的问题以及解决方法

    文章目录 问题 解决方法 改进 问题 一般的 Laravel 应用进行 Nginx 的 Uri 二级目录反向代理的时候,Nginx 的配置文件可按如下配置 location /prefix/ {set ...

  5. 【Nginx那些事】nginx配置实例(一)反向代理

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  6. nginx证书绑定及二级域名反向代理

    两个需求,一是nginx绑定证书并反向代理http服务:二是二级域名的反向代理         一.nginx绑定证书并反向代理: 首先需要nginx服务器及证书,证书包括.pem证书文件和.key证 ...

  7. Nginx四层代理和7层反向代理

    Nginx四层代理和7层反向代理 文章目录 Nginx四层代理和7层反向代理 Nginx四层代理配置 Nginx四层代理配置步骤 配置好两台Nginx七层代理服务器 在四层代理的Nginx服务器上做相 ...

  8. nginx反向代理(请求转发-URL匹配规则)

    反向代理适用于很多场合,负载均衡是最普遍的用法. nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理. nginx 反向代理官方文档: NGINX REVERSE PROXY 当在 ...

  9. nginx 反向代理跨域访问配置_nginx反向代理配置去除前缀

    使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务.设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:加& ...

最新文章

  1. 祝贺!又一批清华大学长聘教授,来了!
  2. 知识体系(不断更新)
  3. Docker - command in docker container
  4. hdu 5112 A Curious Matt
  5. C语言对结构体何时用- , 何时用.
  6. 开发分布式网络监控分析之前端ajax展现那些事
  7. 摆脱Wi-Fi信号干扰的对策
  8. 机器学习:维度灾难(Curse of Dimensionality)
  9. HenCoder Android 开发进阶:自定义 View 1-3 drawText() 文字的绘制
  10. oracle 中的Ipad()函数
  11. Linux驱动开发|电容触摸屏
  12. Centos系统安装踩坑
  13. python编程培训杭州
  14. photoshop ps 瘦身方法 液化工具
  15. 小米官宣:手表Color 2来了,6色多彩表带,你喜欢哪个?
  16. WindowsMessage
  17. uniapp web端 支付宝 微信使用当面付
  18. 36.DAC工作原理与配置
  19. 网上订餐系统设计与实现(JSP+SSM+MySQL)
  20. jupyter安装php,如何安装jupyter

热门文章

  1. OSGi环境中的Servlet基本身份验证
  2. macos big sur正式版_苹果macOS Big Sur正式版发布
  3. Java对象内存图一
  4. PL/SQL工具执行SQL脚本文件
  5. air java,Java Bean
  6. python回归预测例子_案例实战 | 逻辑回归实现客户流失预测(附Python代码与源数据)...
  7. 服务器皮肤在哪个文件里,服务器怎么使用皮肤
  8. elementui 进度条怎么做_小E,Excel中这样的进度条是怎么做出来的?
  9. python初学者用什么开发环境_python初学者用什么开发环境
  10. python数据分析方法和命令_《利用Python进行数据分析》 —— (1)