zoukankan      html  css  js  c++  java
  • Nginx一个端口代理多个server的注意事项

    使用nginx代理时,可使用一个监听端口,然后再结合端口后的路径对多个server进行代理,如下图所示:

     

    此时访问:

    http://test.com/portal

    就相当于访问:http://127.0.0.1:8080/portal

    访问:

    http://test.com/demo

    就相当于访问http://127.0.0.1:8081/

    但是此时需要注意,前端发送请求回后端,请求链接可能都是根据地址栏中的地址+端口进行拼接的,如果不这么做就会出现前端跨域的问题,那就要做跨域处理。所以此时不仅仅要代理前端的访问页面,同时也要注意代理请求,否则就有可能出现登录页面可以打开,但是却无法登录,或者部分功能出现异常的情况。

    配置请求的代理可以分为两种情况,一种是所有的请求是统一接口出去的,一种是请求没有统一接口名称,如果请求是统一接口出去的,如http://127.0.0.1:8080/portal这个服务的所有请求都是统一接口center发出,那么所有请求的URL都是http://IP:PORT/center/........的格式,此时就可以再配置一个路径/center对所有的请求做代理:

    location /center {

    proxy_pass http://127.0.0.1:8080/center;

    root html;

    index index.html index.htm;

    }

    如果请求没有统一接口,如http://127.0.0.1:8081/这个服务,后台的请求并没有统一接口,有时候接口名称是api,有时候又是autoconfig,那么也就是说它的请求URL的格式也有多种:http://IP:PORT/api/........、http://IP:PORT/autoconfig/........等,此时对所有请求接口都做跳转是不太现实的,所以只能对端口进行代理,把监听端口的所有请求都代理到http://127.0.0.1:8081/服务:

    location / {

    proxy_pass http://127.0.0.1:8081/;

    root html;

    index index.html index.htm;

    }

    此时整个nginx.conf的配置如下:

     

     此时访问test.com,如果后面路径是/center、/portal、/demo,那么就跳到代理的链接,其他的全部都跳到http://127.0.0.1:8081/服务。

  • 相关阅读:
    获得Coclor的色值(小技巧)
    如何禁止IIS缓存静态文件(png,js,html等)(转)
    风投最关心的问题
    Repeater一行显示数据库中多行表记录
    c# int Int32 Int64 的区别
    动车实名制了
    学习,积累,10000小时定律
    映射路由器到内网ip和端口
    《轮环》故事大纲整理
    .Net读取xlsx文件Excel2007
  • 原文地址:https://www.cnblogs.com/fivedays/p/12720232.html
Copyright © 2011-2022 走看看