我正在尝试将所有 IP 上 80 端口的所有请求重定向到 9000 端口
我有一台服务器在 eth0 上托管多个 IP 地址。为了解决我的问题,假设它们都使用 apache 监听端口 9000
仅主 IP 地址 (.106) 正常工作并重定向流量
Chain PREROUTING (policy ACCEPT 2132 packets, 256K bytes)
pkts bytes target prot opt in out source destination
128 7236 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.106 tcp dpt:80 redir ports 9000
151 8624 REDIRECT tcp -- eth0 * 0.0.0.0/0 173.234.60.107 tcp dpt:80 redir ports 9000
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 21 1574 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000
我的虚拟主机配置中监听 173.234.60.107:9000(或任何其他 IP)的所有其他内容都重定向到默认的 /var/www/index.html 页面
示例:www.tiprocker.com - ip .106 -> 成功连接并重定向到 ssl mvmdesign.org - ip .107 -> 默认页面
在单个服务器实例上使用多个 IP 时是否会发生特定情况?我还尝试使用 nodejs 将所有流量从 80 重定向到完全不同的 IP 到 9001,在这种情况下,我得到一个页面未找到,因此 iptables 的某些功能似乎对我来说无法正常运行。
编辑: 以下是关于我的 apache 配置的一些附加信息
httpd配置文件https://gist.github.com/maruf89/8f162b49addc5dc49902
// separate file
NameVirtualHost 173.234.60.106:9000
NameVirtualHost 173.234.60.106:443
NameVirtualHost 173.234.60.107:9000
NameVirtualHost 173.234.60.107:443
mvmdesign.org vhost 文件https://gist.github.com/maruf89/363b6edd111834ad78bb
答案1
如果显示默认页面,则重定向有效(因为字节和数据包计数器都 >0,您也可以看到),这是 Apache 中的配置问题。