
我的 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:9090
y 存取時不起作用。 (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。
最後,如果您在從外部電腦連線時遇到問題,請檢查電腦上的防火牆是否允許連線到新的偵聽連接埠。