baobao1270
V2EX  ›  服务器

Apache 服务器配置问题

  •  
  •   baobao1270 · Jun 16, 2019 · 4517 views
    This topic created in 2561 days ago, the information mentioned may be changed or developed.
    Nginx 反向代理 Apache2 服务器。因为一些原因,源站域名和反代域名不同。

    Nginx 服务器绑定 rproxy.www.example.com ,反代 www.example.com

    Apache 服务器绑定 www.example.com ,用于 host 静态文件,在子目录 files/ 下有若干静态文件。

    但是访问 rproxy.www.example.com/files,自动跳转到 www.example.com/files/,而访问 rproxy.www.example.com/files/ (后面多了斜杠)则不会。通过 curl 测试,发现不是 Nginx 的配置问题,而是 Apache 将不带斜杠访问目录 301 跳转到了带斜杠的目录地址。

    也就是说,Apache 在默认情况下,会把访问目录的 URL 跳转到 ${PROTOCAL}://${HOST}/${DIR_NAME}/,而不是直接用相对路径跳转(搜了一下,好像用相对路径跳转是不符合 HTTP 规范的)

    谷歌了很久,并没有发现好的解决方案,有说关闭自动加斜杠跳转的,但是确实有自动加斜杠的需求;有说在 Nginx 上配置替换网址的,但是个人希望在原站上解决问题;有说在 Apache 上绑定 rproxy.www.example.com (即反代的域名)然后 Nginx 发送对应 Host 的,似乎不失为一个解决方法,但感觉这样有点混乱……

    现在请教一下大家,有没有什么好的方法可以解决这个问题?
    1 replies    2019-06-16 08:27:06 +08:00
    AngryPanda
        1
    AngryPanda  
       Jun 16, 2019 via Android
    试试 ngx_headers_more,改掉 response header
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   852 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:59 · PVG 05:59 · LAX 14:59 · JFK 17:59
    ♥ Do have faith in what you're doing.