如何创建 iptables 规则以允许任何子目录的 IP 地址

如何创建 iptables 规则以允许任何子目录的 IP 地址

我目前有一台 DigitalOcean Ubuntu 16.04x64 服务器,其中装有 Linux 容器,用于容纳多个站点。其中一个容器安装了 HAProxy,并将传入流量路由到相应的容器。每个容器在创建时都有一个唯一的 IP 地址。

我运行以下命令为 iptables nat 表创建规则:

sudo iptables -t nat -I PREROUTING -i eth0 -p TCP -d 你的服务器ip/32 --dport 80 -j DNAT --to-destination 你的haproxyip:80

这可以正常工作,并且我指向服务器的任何域都会被重定向到它应该去的容器。

我目前正在从另一台服务器迁移网站,在新服务器上测试完网站之前,仍然需要将域名指向那里。此外,为了未来的开发,我希望在尚未将域名指向容器的情况下访问容器。

所以我的问题是,如何编辑上述命令来创建允许子目录的规则?例如:159.203.86.144/测试或者159.203.86.144/10.23.98.211

答案1

同意迈克尔·汉普顿,如果你想这样做,你应该使用反向代理,比如nginx,这将是更好的解决方案。你可以在本文

答案2

好的,事实证明,最初制定的规则已经可以处理我到达容器所需的子目录路径。

http://服务器 IP/linux_container_ip

我将此配置添加到 /etc/haproxy/haproxy.conf 的前端

acl host_test url_beg -i /linux_container_ip

然后在 Linux 容器中,为 /etc/nginx/sites-available/default 添加一个别名

location /linux_container_ip {
alias /path/to/root/production/folder/here;
}

相关内容