Apache-2.2
禁止 (403),在 apache 2.2.22 上訪問伺服器狀態時
嘗試訪問 www.website.com/server-status 時出現 Forbidden 錯誤
mod_status 已啟用
虛擬主機:
<VirtualHost *:8080> ServerName website.com ServerAlias www.website.com DocumentRoot /var/www/wordpress/ DirectoryIndex index.php <Directory /var/www/wordpress/> AllowOverride All Order Deny,Allow Allow from all Options +Indexes </Directory> <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from .website.com </Location> ErrorLog /var/www/wordpress/logs/error.log CustomLog /var/www/wordpress/logs/access.log combined </VirtualHost>
我嘗試將 Allow 從 .website.com 更改為網站 IP,但出現了同樣的問題。當我嘗試將其更改為 Allow from all 時,我得到一個 404。
我所做的另一個嘗試是從 127.0.0.1 設置允許並從伺服器內部通過 lynx 訪問,幾乎是同樣的問題。
這是 error.log 中收到的錯誤:
[error] [client 127.0.0.1] client denied by server configuration: /var/www/wordpress/server-status
此外,我禁用了 status.conf 位置覆蓋,以確保唯一的伺服器狀態定義將在 VirtualHost 中。在 apache.conf 中設置伺服器狀態位置提供了相同的結果。
知道我錯過了什麼嗎?
我嘗試協助以下資源,但這些資源都沒有為我提供解決方案:
謝謝
Allow from 行與您的網站無關。
Allow from
允許具有指定 IP 地址(或解析為 IP 的域名)的人訪問您的網站。因此,如果您家的 IP 地址為 2.2.2.2,您將輸入
allow from 2.2.2.2
and NOTallow from yourownwebsite.com
。這應該可以修復您的 403(禁止),儘管我意識到您說過您嘗試將其更改為 127.0.0.1,並直接從伺服器訪問它。您是否嘗試將 127.0.0.1 更改為
localhost
?現在,關於 404。這完全是一個不同的問題。這是“未找到”錯誤,而不是“禁止”錯誤。
預設情況下,VirtualHost 容器並不打算與 mod_status 一起使用。它根本行不通。根據這個網站,你有兩個選擇:
- 讓伺服器監聽另一個埠(例如 8080)
- 將 <VirtualHost :80> 中的星號更改為您伺服器的公共 IP 地址 - 然後,您只能*從 localhost / 127.0.0.1訪問伺服器狀態