我在我的服务器上运行 Docker,并启动了一个 Apache2 容器,它充当所有传入请求的反向代理。
我已经在 Docker 上启动了 OnlyOffice Docker 容器,并且已将 OnlyOffice 实例配置为使用 HTTPS,添加了一些自签名证书。如果我使用 访问服务器https://serverip:onlyofficeport
,一切都会按预期运行,但我想通过我的反向代理将来自外部的请求代理到 OnlyOffice 容器。
配置:
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/letsencrypt/live/defg.com/fullcha$
SSLCertificateChainFile /etc/letsencrypt/live/defg.com/fullcha$
SSLCertificateKeyFile /etc/letsencrypt/live/defg.com/privkey$
ServerAdmin [email protected]
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPreserveHost on
ProxyPass "/" "https://172.17.0.12:444/" retry=0
ProxyPassReverse "/" "https://172.17.0.12:444/"
ServerName abcd.defg.com
</VirtualHost>
不幸的是,这不起作用,我收到以下错误:
[proxy:error] [pid 60] (111) Connection refused: AH00957: HTTPS: attempt to connect to 172.17.0.12:444 (172.17.0.12) failed
[proxy:error] [pid 60] AH00959: ap_proxy_connect_backend disabling worker for (172.17.0.12) for 0s
[proxy_http:error] [pid 60] [client 192.168.30.24:64712] AH01114: HTTP: failed to make connection to backend: 172.17.0.12
Apache 似乎无法连接到 OnlyOffice 实例,网页上显示503, Service unavailable
。如何通过我的反向代理将外部请求代理到 OnlyOffice 容器?
答案1
问题已解决。
我必须使用服务器本身的 IP 地址,而不是 docker 容器的 IP 地址。
这很奇怪,因为我通常使用 Docker 容器的 IP 地址。