nginx 多个 url 重写

2022 年 1 月 24 日
 toyst

我想实现访问

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

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

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

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

4196 次点击
所在节点    NGINX
19 条回复
dethan
2022 年 1 月 24 日
总得有转发规律吧,没有就维护一个列表?
toyst
2022 年 1 月 24 日
@dethan 就是没有规律,否则可以正则了
sadfQED2
2022 年 1 月 24 日
500 行写 nginx 炸不了,我见过上万行的 nginx 配置文件
meloncc
2022 年 1 月 24 日
迷惑行为,这操作是引流吗?
meloncc
2022 年 1 月 24 日
重写是代理的意思吗? 500 个代理炸不了,倒是要注意缓存问题,如果文件乱的话把代理列表分出来。
kiracyan
2022 年 1 月 24 日
维护一张表 然后用脚本把这个 nginx 输出出来
wangxn
2022 年 1 月 24 日
这不就是那些缩短 API 的服务干的事情吗?为啥不 302 过去?
yernsun
2022 年 1 月 24 日
rrfeng
2022 年 1 月 24 日
精确匹配的话用 map 就行。性能肯定没问题。

如果想要可扩展可编辑可以 lua
chezs66
2022 年 1 月 24 日
这个选型的问题在于变更频率吧?如果写到 ng 配置,变更规则耗时很长吧
none
2022 年 1 月 24 日
nginx 的 njs 了解一下,写 js 脚本读取映射文件动态转发请求,这样对 nginx 配置影响最小。
JDog
2022 年 1 月 24 日
维护一个 mapping ,写 lua 吧....手写配置文件多呆啊
jakehu
2022 年 1 月 24 日
Lua
twinsdestiny
2022 年 1 月 24 日
之前公司有看到过,地址维护在 mysql 中,然后 nginx 直接连 mysql 通过参数匹配实际地址,在转发
avv
2022 年 1 月 24 日
openresty 值得你拥有
ch2
2022 年 1 月 24 日
你太小看 nginx 了吧
firebroo
2022 年 1 月 24 日
@JDog 还行啊。。写个 py 脚本生成配置,感觉跟鞋 lua 一样
0ZXYDDu796nVCFxq
2022 年 1 月 24 日
map 就行了
如果没有通配、正则,时间复杂度是 O(1),通配和正则的时间复杂度是 O(n)
onhao
2022 年 1 月 25 日
直接写在 nginx 配置文件里,不好修改,还是写在程序里好。
我就是这样处理的 https://wuhao.pw/archives/298/
在程序里 做映射 sdf ->hgf 35dg->54fg2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/830235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX