Apace 反向代理到 Docker 容器 - CSF 突破容器应用程序

Apace 反向代理到 Docker 容器 - CSF 突破容器应用程序

我已经思考了一整天了但似乎还是没弄明白。

我安装了列表在我的服务器上并为其设置 Apache 反向代理:

<VirtualHost listmonk.ygoprodeck.com:80>
    ServerName listmonk.ygoprodeck.com
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
</VirtualHost>
<VirtualHost <SERVERIP>:443>
    ServerName listmonk.ygoprodeck.com
    SSLCertificateFile /etc/ssl/certs/listmonk-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/listmonk-selfsigned.key
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    SSLEngine On
    SSLProxyEngine On
</VirtualHost>

这工作正常,我可以通过https://listmonk.ygoprodeck.com/并且应用程序正常运行。

但是,随后我在服务器上激活了 CSF,却立即无法通过上面的 URL 访问 Listmonk。

我在 CSF 中启用了停靠设置,但没有什么区别,而我修复它的唯一方法是将以下内容添加到 TCP_IN 和 TCP_OUT:

9000,9432,5432

之后,它又开始完全工作了。如果我只添加端口 9000,那么我可以通过 URL 访问应用程序,但应用程序无法连接到 postgres 数据库。然而,这似乎是不好的做法,我认为反向代理的性质应该允许我不必向外部公开这些端口。

有什么建议吗?我快要放弃了。

CSF Docker 设置:

DOCKER = 1
DOCKER_DEVICE = docker0 
DOCKER_NETWORK4 = 172.17.0.0/16,172.18.0.0/16
DOCKER_NETWORK6 = 2001:db8:1::/64

相关内容