Apache-2.2

禁止 (403),在 apache 2.2.22 上訪問伺服器狀態時

  • March 8, 2021

嘗試訪問 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 中設置伺服器狀態位置提供了相同的結果。

知道我錯過了什麼嗎?

我嘗試協助以下資源,但這些資源都沒有為我提供解決方案:

  1. Apache 模組 mod_status
  2. 非標準埠的 Apache 伺服器狀態 403
  3. 阿帕奇休息室文章

謝謝

Allow from 行與您的網站無關。Allow from允許具有指定 IP 地址(或解析為 IP 的域名)的人訪問您的網站。

因此,如果您家的 IP 地址為 2.2.2.2,您將輸入allow from 2.2.2.2and NOT allow from yourownwebsite.com

這應該可以修復您的 403(禁止),儘管我意識到您說過您嘗試將其更改為 127.0.0.1,並直接從伺服器訪問它。您是否嘗試將 127.0.0.1 更改為localhost

現在,關於 404。這完全是一個不同的問題。這是“未找到”錯誤,而不是“禁止”錯誤。

預設情況下,VirtualHost 容器並不打算與 mod_status 一起使用。它根本行不通。根據這個網站,你有兩個選擇:

  1. 讓伺服器監聽另一個埠(例如 8080)
  2. 將 <VirtualHost :80> 中的星號更改為您伺服器的公共 IP 地址 - 然後,您只能*從 localhost / 127.0.0.1訪問伺服器狀態

引用自:https://serverfault.com/questions/647136