我有一个 Apache2 + Virtual Host 配置,它在端口 80 上运行良好,但我试图让相同的设置在端口 9000 上运行。我进入 httpd.conf 并将 Listen 行更改为:
Listen xxx.xxx.xxx.xxx:9000
然后我进入我的网站的虚拟主机配置并将其更改为:
<VirtualHost xxx.xxx.xxx.xxx:9000>
我在 iptables 上打开了端口 9000,如下所示:
$ iptables -A INPUT -i eth0 -p tcp --dport 9000 -j ACCEPT
$ iptables -A OUTPUT -i eth0 -p tcp --dport 9000 -j ACCEPT
但我遇到了网站仍然无法工作的问题。大多数时候,我会直接收到连接错误,有时(在更改某些配置后)我会让它加载服务器默认的 htdocs 目录。
不知道我还遗漏了什么。
答案1
您的 html 链接可能不包含:9000,因此它们没有到达正确的端口(如果没有指定端口,它们默认为 tcp/80。
另外,你的 iptables 指令
iptables -A OUTPUT -i eth0 -p tcp --dport 9000 -j 接受
没有必要,因为返回流量几乎从不来自端口 9000,即使有,也会被第一条指令中的 ESTABLISHED/EXISTING 状态表条目所覆盖,因此你可以终止第二条指令
否则你的 listen 和虚拟主机 apache 指令看起来是正确的...l(这就是为什么我猜测你的页面上的 url 可能缺少http://your.domain.com:9000)