V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
cnbattle
V2EX  ›  NGINX

nginx 能到实现这样的需要?

  •  
  •   cnbattle ·
    cnbattle · 2018-02-26 10:39:22 +08:00 · 3600 次点击
    这是一个创建于 2248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    默认提供的功能,不自己写插件是否实现这样的需要?

    有站点 website0.com,website1.com,website2.com,三个网站

    website0 为对外服务的网站,其他为内部网站

    需要: 用户访问 website0.com/xxx 返回 website1.com/abc 的数据 ,url 扔显示 website0.com/xxx 用户访问 website0.com/xxx2 返回 website2.com/lalal 的数据 ,url 扔显示 website0.com/xxx2

    website1,website2 均是 get 数据

    我知道上面的需求类似 api 网关,不过这是个人兴趣非工作,不需要 api 网关的那么多功能

    想到的是 nginx 有重定向和反向代理,我所知道的重定向会改变地址,反向代理不能设置指定的 path 反代到站外指定 url

    顾若只是使用 nginx 做,是不是无解?若可以,该怎么弄呢?能都给个 demo

    8 条回复    2018-02-26 16:50:22 +08:00
    jswh
        1
    jswh  
       2018-02-26 10:45:06 +08:00
    这就时一个内部的 proxy,如果 url 不多就直接用 proxy_pass 指令。如果 url 很多的化,就用 openrestry,加一点点 lua 脚本就可以。
    zhu327808
        2
    zhu327808  
       2018-02-26 10:47:20 +08:00
    这是 Ngin 想的基本功能吧, 推荐自己研究研究, 关键字

    server rewrite proxy_pass
    Lax
        3
    Lax  
       2018-02-26 10:54:09 +08:00
    如果只是两个 url,直接 proxy pass。
    ```
    server_name website0.com;

    location /xxx {
    proxy_pass http://website1.com/abc;
    }
    ```
    Lax
        4
    Lax  
       2018-02-26 10:54:55 +08:00
    还有 http 跳转的情况需要处理,仔细看看 2 楼提供的文档
    cnbattle
        5
    cnbattle  
    OP
       2018-02-26 10:57:08 +08:00
    @jswh 谢谢

    @zhu327808 0.0 后端程序员,所以服务器这块了解很浅

    @Lax 谢谢你的 demo
    msg7086
        6
    msg7086  
       2018-02-26 12:56:56 +08:00
    > 反向代理不能设置指定的 path 反代到站外指定 url

    怎么可能呢→_→
    mentalidade
        7
    mentalidade  
       2018-02-26 13:54:30 +08:00
    按照三楼的做就可以了。就默认配置加两个 location 就好
    cnbobolee
        8
    cnbobolee  
       2018-02-26 16:50:22 +08:00
    内部重定向和代理就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4935 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:53 · PVG 17:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.