LXD / Container / Apache2 / Iptables - 无法在网站中加载外部资源

LXD / Container / Apache2 / Iptables - Unable to load external sources in website

我有一个带有 LXD 的容器设置 运行 几个 wordpress 网页 (apache2) 一切正常。

我通过以下方式添加了端口转发:

lxc config device add CONTAINER lxd_proxy_port80 proxy listen=tcp:0.0.0.0:80 connect=tcp:INTERNALIP:80

…端口 443 也一样。一切正常。

不幸的是,我在我的 apache2 日志 (var/log/apache2/access.log) 中看不到原始 IP,只能看到本地 IP。 通过使用 iptables,我想改变这一点。我做到了:

iptables -A FORWARD -p tcp -d LOCALIP --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp -d LOCALIP --dport 80 -j ACCEPT

并使用

删除我的代理设备
lxc config device remove CONTAINER lxd_proxy_port80
lxc config device remove CONTAINER lxd_proxy_port443

我实际上可以正确访问我服务器上的文件,我现在还在 apache2 访问日志中看到我的外部 IP。

但是,wordpress 不再(外部)到达更新服务器并且似乎在到达外部世界时出现问题,我的 wordpress 页面之一无法再访问 index.php 文件(它挂起加载)。我想后一种影响是由于某些外部内容没有正确加载。

你能帮我理解这是怎么回事吗?

这段对话回答了以下问题: https://discuss.linuxcontainers.org/t/iptables-apache-in-lxd-container/6143 一个很好的视频: https://www.youtube.com/watch?v=1p-fbS_OYTg

我的解决方案确实通过在 iptables 规则中添加 -d MYIP/32 使其仅适用于传入流量而最终起作用。