Webmin 在反向代理后无法正常工作

Webmin 在反向代理后无法正常工作

我已将 Webmin 配置为监听 localhost:1000,将 nginx 配置为监听 my.domain.tld:80,并将反向代理指向 Webmin。此配置工作正常,但有时我会收到 404 错误,HTTP 标头表明这是 Webmin 的 miniserv 将 302 重定向放入其中:

HTTP/1.0 302 临时移动日期:2010 年 1 月 3 日星期日 11:38:46 GMT 服务器:MiniServ/0.01 连接:关闭位置:http://my.domain.tld:10000/webmin/

您能建议如何禁用此行为吗?

答案1

我遇到了非常类似的问题。但是,我的问题具体是,登录 Webmin 后,它会重定向到非代理地址和端口。

为了进一步说明,假设我希望 webmin 在“https://example.com/admin/webmin',但它确实在'https://example.com:10000'。转到第一个地址将显示登录页面,但会将我重定向到第二个地址(302 永久移动)。然后我可以输入或粘贴第一个地址,一切都会像我已登录一样工作。

我尝试按照 Webmin wiki 上的说明、上面的建议以及其他各种建议进行操作。然后我找到了解决方案。我需要在我的 Apache 配置中添加另一个 ProxyReversePass,以捕获重定向中的 URL。

ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine On

ProxyPass /admin/webmin/ https://example.com:10000/
ProxyHTMLURLMap https://localhost:10000 /admin/webmin

<Location /admin/webmin/>
 ProxyHTMLExtended On
 SetOutputFilter proxy-html
 ProxyPassReverse https://localhost:10000/
 ProxyPassReverse https://example.com:10000/
</Location>

当然,在 /etc/webmin/config 中我有 webprefix="/admin/webmin" 和 webprefixnoredir=1。我想在本地 LAN 上使用 SSL 保护,因此我启用了 SSL 并执行了 SSL 代理操作。希望这对遇到此问题的人有所帮助。

我非常绝望,试图修改 miniserv.pl,甚至想过打破 mod_rewrite。

答案2

好的,我自己搞明白了。当您将 Webmin 配置为仅绑定到本地主机时,您应该在 miniserv.conf 中使用以下命令:

套接字=127.0.0.1:10000

这是 host=localhost 和 port=1000 的替代。我希望它也能帮助其他人。

答案3

谢谢,套接字选项几乎让我到了那里,但是我在前端使用 SSL(它可以更好地处理证书)并且我在前端使用不同的端口,所以我还需要添加:

proxy_redirect http://www.example.com:10000 https://www.example.com:10443;

相关内容