全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1269|回复: 7

nginx反代正则替换

[复制链接]
发表于 2023-6-22 00:17:55 | 显示全部楼层 |阅读模式
nginx反代貌似不支持正则替换,
于是装了ngx_http_substitutions模块,
但是似乎还是不作用,

比如,我要替换12345.ts,在它前面补全url,即 https://a.com/floder/12345.ts
(12345为随机数字)

正则匹配:
sub_filter '(.*?\.ts)' 'https://a.com/floder/$1';

sub_filter '(.*?)(\.ts)(.*)' 'https://a.com/floder/$1$2$3';

两种写法都不起作用,
是我写法有问题,还是模块不支持啊??
发表于 2023-6-22 00:40:31 | 显示全部楼层
确保你已经正确加载了ngx_http_substitutions模块。你可以在nginx配置文件中的http块中添加以下指令来加载该模块:

  1. load_module modules/ngx_http_substitutions_module.so;
复制代码

这将加载ngx_http_substitutions模块。确保指定的模块路径与实际安装的模块路径相匹配。

然后,确保你在location块中正确启用了替换操作,并使用sub_filter指令进行替换。例如:
  1. location / {
  2.     ...
  3.     sub_filter_once off;
  4.     sub_filter_types *;
  5.     sub_filter '(.*?\.ts)' 'https://a.com/floder/$1';
  6.     ...
  7. }
复制代码

上述配置中的sub_filter_once off表示允许多次替换,sub_filter_types *表示对所有类型的响应进行替换。
发表于 2023-6-22 01:30:55 | 显示全部楼层
页面压缩也会影响替换

 楼主| 发表于 2023-6-22 10:17:05 | 显示全部楼层
cangshui 发表于 2023-6-22 00:40
确保你已经正确加载了ngx_http_substitutions模块。你可以在nginx配置文件中的http块中添加以下指令来加载 ...

感谢大佬,nginx -V 查看包含了--add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master,是不是表示ngx_http_substitutions_filter已经正常加载了
发表于 2023-6-22 10:44:39 | 显示全部楼层
igoogle 发表于 2023-6-22 10:17
感谢大佬,nginx -V 查看包含了--add-module=/www/server/nginx/src/ngx_http_substitutions_filter_modu ...

在nginx.conf的配置文件里要加载这个模块
 楼主| 发表于 2023-6-22 10:47:34 | 显示全部楼层
lowan 发表于 2023-6-22 10:44
在nginx.conf的配置文件里要加载这个模块

加http块里面,提示错误;
加其它块里面,也都是报错啊。。
怎么回事
发表于 2023-6-22 10:50:47 | 显示全部楼层
乌拉擦 发表于 2023-6-22 01:30
页面压缩也会影响替换

确实,可以设一下proxy的encoding header
发表于 2023-6-22 10:50:58 | 显示全部楼层
igoogle 发表于 2023-6-22 10:47
加http块里面,提示错误;
加其它块里面,也都是报错啊。。
怎么回事

不是加http,也不是加网站配置文件里,是加nginx的配置文件里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-26 18:25 , Processed in 0.118029 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表