咨询一个 nginx 反代 替换源站 logo 的问题

2018-05-06 14:32:32 +08:00
 jsonge
假设源站为 www.a.com 源站 Logo 地址为 https://www.a.com/themes/images/logo.svg
新站为 www.b.com 现在的目标是:希望用户通过 www.b.com 能访问 a 站的所有内容,且 logo 自动替换成自己的 logo,logo 文件存放地址为: https://www.c.com/logo.png

location / {
sub_filter www.a.com www.b.com; # 地址重写
sub_filter themes/images/logo.svg https://www.c.com/logo.png; #替换掉 LOGO
sub_filter_once off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer https://www.a.com;
proxy_connect_timeout 300s;
proxy_read_timeout 5400s;
proxy_send_timeout 5400s;
proxy_pass https://www.a.com;
proxy_set_header Accept-Encoding "";
}

按照上面的配置,访问 www.b.com 的时候,网站 logo 地址变成了 https://www.b.com/https://www.c.com/logo.png
也就是在实际 logo 地址前面自动加上了网站的网址,导致 logo 无法显示,请问各位大佬,是哪里配置错误,该如何解决替换 logo 的这个问题呀。

感谢。
1981 次点击
所在节点    问与答
5 条回复
msg7086
2018-05-06 14:36:34 +08:00
字符串替换,要先在网页里找到原始字符串,然后再替换成新的字符串。
看上去是你这老字符串取的不对。
xiaoz
2018-05-06 20:01:29 +08:00
在 hostloc 已经回复你了
xiaoz
2018-05-06 20:01:52 +08:00
禁止 gzip 写最前面
ge2009
2018-05-10 19:38:13 +08:00
学习了,原来还可以这么操作
wkl17
2018-09-21 16:02:02 +08:00
proxy_set_header Referer https://www.a.com;
这句的话 是不是 b 站反代、使用 a 站的内容时,日志统计看到来源页面会是 a 站自身?
也就是能避免 a 站发觉被反代了?

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

https://www.v2ex.com/t/452528

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

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

© 2021 V2EX