› NGINX
› NGINX Trac
› 3rd Party Modules
› Security Advisories
› CHANGES
› OpenResty
› ngx_lua
› Tengine
在线学习资源
› NGINX 开发从入门到精通
NGINX Modules
› ngx_echo
toyst
V2EX  ›  NGINX

nginx 多个 url 重写

  •  
  •   toyst · Jan 24, 2022 · 4828 views
    This topic created in 1748 days ago, the information mentioned may be changed or developed.

    我想实现访问

    http://a.com/sdf 代理到 http://a.com/hgf

    http://a.com/35dg 代理到 http://a.com/54fg2

    类似这样的 . . . 我有一个列表,大概 500 行

    应该怎么实现呢? 不能写 500 个 location 吧,那样性能会不会很爆炸? 只用 nginx 可以吗?

    19 replies  •  2022-01-25 13:56:46 +08:00
    dethan
    dethan
    Jan 24, 2022 via Android
    1
    总得有转发规律吧,没有就维护一个列表?
    toyst
    toyst
    OP
    Jan 24, 2022
    2
    @dethan 就是没有规律,否则可以正则了
    sadfQED2
    sadfQED2
    Jan 24, 2022 via Android
    3
    500 行写 nginx 炸不了,我见过上万行的 nginx 配置文件
    meloncc
    meloncc
    Jan 24, 2022
    4
    迷惑行为,这操作是引流吗?
    meloncc
    meloncc
    Jan 24, 2022
    5
    重写是代理的意思吗? 500 个代理炸不了,倒是要注意缓存问题,如果文件乱的话把代理列表分出来。
    kiracyan
    kiracyan
    Jan 24, 2022
    6
    维护一张表 然后用脚本把这个 nginx 输出出来
    wangxn
    wangxn
    Jan 24, 2022 via Android
    7
    这不就是那些缩短 API 的服务干的事情吗?为啥不 302 过去?
    rrfeng
    rrfeng
    Jan 24, 2022
    9
    精确匹配的话用 map 就行。性能肯定没问题。

    如果想要可扩展可编辑可以 lua
    chezs66
    chezs66
    Jan 24, 2022
    10
    这个选型的问题在于变更频率吧?如果写到 ng 配置,变更规则耗时很长吧
    none
    none
    Jan 24, 2022
    11
    nginx 的 njs 了解一下,写 js 脚本读取映射文件动态转发请求,这样对 nginx 配置影响最小。
    JDog
    JDog
    Jan 24, 2022
    12
    维护一个 mapping ,写 lua 吧....手写配置文件多呆啊
    jakehu
    jakehu
    Jan 24, 2022
    13
    Lua
    twinsdestiny
    twinsdestiny
    Jan 24, 2022
    14
    之前公司有看到过,地址维护在 mysql 中,然后 nginx 直接连 mysql 通过参数匹配实际地址,在转发
    avv
    avv
    Jan 24, 2022
    15
    openresty 值得你拥有
    ch2
    ch2
    Jan 24, 2022 via iPhone
    16
    你太小看 nginx 了吧
    firebroo
    firebroo
    Jan 24, 2022
    17
    @JDog 还行啊。。写个 py 脚本生成配置,感觉跟鞋 lua 一样
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Jan 24, 2022 via Android
    18
    map 就行了
    如果没有通配、正则,时间复杂度是 O(1),通配和正则的时间复杂度是 O(n)
    onhao
    onhao
    Jan 25, 2022
    19
    直接写在 nginx 配置文件里,不好修改,还是写在程序里好。
    我就是这样处理的 https://wuhao.pw/archives/298/
    在程序里 做映射 sdf ->hgf 35dg->54fg2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1908 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 08:17 · PVG 16:17 · LAX 00:17 · JFK 03:17
    ♥ Do have faith in what you're doing.