我正在尝试使用 Apache2 作为反向代理来访问在 Docker 容器内运行的应用程序 (calibre web)。由于该应用程序正在使用重定向(更多详细信息这里),我正在尝试使用 apache 的mod_substitute修改重定向中的 URL,使其指向正确的 URL。我在名为的文件中写入了以下内容calibreweb.conf
,并启用了网站和substitute
模块。
<Location /calibre-web>
ProxyPass http://127.0.0.1:8083
ProxyPassReverse http://127.0.0.1:8083
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|https://subdomain.example.com/|https://subdomain.example.com/calibre-web/|i"
</Location>
问题是,重启 Apache 后,该模块没有任何作用。为了进行合理性检查,我尝试将替代模式更改为Substitute "s|admin|user|i"
,因为第一个重定向包含admin
,但我仍然被重定向到。在该行上方subdomain.example.com/admin/dbconfig
添加也无济于事。还删除了内容类型过滤器,以便文件变为SetOutputFilter SUBSTITUTE,DEFLATE
AddOutputFilterByType
<Location /calibre-web>
ProxyPass http://127.0.0.1:8083
ProxyPassReverse http://127.0.0.1:8083
Substitute "s|https://nas.gtpware.eu/|https://nas.gtpware.eu/calibre-web/|i"
</Location>
没有修复。知道为什么这不起作用吗?在我看来,它看起来像 Apache2 文档中给出的示例。谢谢你的帮助,
GTP95
答案1
事实证明 Calibre web 在他们的 wiki 中有一个可行的示例这里。归结起来就是:
<Location /calibre-web >
RequestHeader set X-SCRIPT-NAME /calibre-web
RequestHeader set X-SCHEME https
ProxyPass http://localhost:8083/
ProxyPassReverse http://localhost:8083/
ProxyPassReverseCookiePath / /calibre-web/
</Location>