当前位置 主页 > 服务器问题 > nginx问题汇总 >

nginx如何实现请求转发?

栏目:nginx问题汇总 时间:2018-12-19 10:38

  反向代理适用于很多场合,负载均衡是最普遍的用法。
  nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。
  nginx 反向代理官方文档: NGINX REVERSE PROXY
  当在一台主机上部署了多个不同的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

缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全