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 如果我再次透過網頁伺服器執行,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。

最後,如果您在從外部電腦連線時遇到問題,請檢查電腦上的防火牆是否允許連線到新的偵聽連接埠。

相關內容