V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jsonge
V2EX  ›  问与答

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

  •  
  •   jsonge · 2018-05-06 14:32:32 +08:00 · 1998 次点击
    这是一个创建于 2403 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设源站为 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 的这个问题呀。

    感谢。
    5 条回复    2018-09-21 16:02:02 +08:00
    msg7086
        1
    msg7086  
       2018-05-06 14:36:34 +08:00
    字符串替换,要先在网页里找到原始字符串,然后再替换成新的字符串。
    看上去是你这老字符串取的不对。
    xiaoz
        2
    xiaoz  
       2018-05-06 20:01:29 +08:00 via Android
    在 hostloc 已经回复你了
    xiaoz
        3
    xiaoz  
       2018-05-06 20:01:52 +08:00 via Android
    禁止 gzip 写最前面
    ge2009
        4
    ge2009  
       2018-05-10 19:38:13 +08:00
    学习了,原来还可以这么操作
    wkl17
        5
    wkl17  
       2018-09-21 16:02:02 +08:00
    proxy_set_header Referer https://www.a.com;
    这句的话 是不是 b 站反代、使用 a 站的内容时,日志统计看到来源页面会是 a 站自身?
    也就是能避免 a 站发觉被反代了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1533 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:10 · PVG 01:10 · LAX 09:10 · JFK 12:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.