Apache 更改端口问题

Apache 更改端口问题

我的 Apache+Wordpress 机器 (Debian) 出了点问题。默认情况下,它监听端口 80,我已对其进行了更改,现在“监听”端口 9090。

/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
[...]

/etc/apache2/sites-available/default
[...]
<VirtualHost *:9090>
[...]

当我尝试通过http://10.250.10.70:9090y 访问时,不起作用。(Chrome 错误ERR_CONNECTION_REFUSED:)

如果我尝试在同一台机器上wget http://10.250.10.70:9090/ -O -获得以下输出:

--2015-05-14 12:31:43--  http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:31:43--  http://10.250.10.70/
Connecting to 10.250.10.70:80... failed: Connection refused.

如果我也监听端口 80,但不改变 /etc/apache2/sites-available/default

/etc/Apache2/ports.conf
[...]
NameVirtualHost *:9090
Listen 0.0.0.0:9090
Listen 0.0.0.0:80
[...]

WebSite 可以在端口 80 上运行(我真的不知道为什么,因为 NameVirtualHost 只能在端口 9090 上运行)。此外,如果我通过端口 9090 访问,则可以,但会重定向到端口 80 相同的 URI。如果我再次通过 Web 服务器执行,wget http://10.250.10.70:9090/ -O - 我会得到以下响应:

--2015-05-14 12:38:16--  http://10.250.10.70:9090/
Connecting to 10.250.10.70:9090... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.250.10.70/ [following]
--2015-05-14 12:38:16--  http://10.250.10.70/
Connecting to 10.250.10.70:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `STDOUT'

    [<=>                                    ] 0           --.-K/s              <!DOCTYPE html>
[...]

首先,我不知道为什么 VirtualHost 通过端口 80 工作,其次,为什么这个系统将我监听到的任何流量(在本例中为 9090)重定向到端口 80...

我彻底“迷失”了

谢谢大家

笔记:

root@TWBLOG:~# apache2 -v
Server version: Apache/2.2.22 (Debian)
Server built:   Dec 23 2014 22:48:29

答案1

最有可能是防火墙导致了问题。使用以下命令打开端口 9090:

sudo iptables -A INPUT -p tcp --dport 9090 -j ACCEPT

如果你使用 ufw:

sudo ufw allow 9090

如果你想将端口 80 上的所有请求重定向到 9090:

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 9090

答案2

应用程序(WordPress)正在生成重定向 - 您应该检查 WordPress 配置并设置其基本 URI 以反映您正在访问它的新端口。

另请参阅有关更改设置的 WordPress 文档:http://codex.wordpress.org/Changing_The_Site_URL

当 Apache 收到与定义不匹配的请求时,<VirtualHost>它会使用默认值,即它找到的第一个(或唯一一个)。这应该可以解释为什么到达端口 80 的请求仍然会到达 WordPress 的 VirtualHost。

最后,如果您在从外部机器连接时遇到问题,请检查机器上的防火墙是否允许连接到新的监听端口。

相关内容