多個虛擬主機的 Apache2 403 錯誤
我的 Apache2 安裝有一些問題。
上週由於硬碟故障,我進行了正常備份,將硬碟更換為新硬碟並再次安裝所有 SO (Debian 7 AMD64) 和 Apache2。我已將所有數據從備份恢復到新磁碟。
我再次使用與上次安裝相同的配置配置了虛擬主機,但這次我嘗試訪問除僅託管靜態內容的虛擬主機之外的任何虛擬主機。
Apache 錯誤文件沒有錯誤,在 Apache 啟動期間也沒有錯誤或警告。我還檢查了文件系統的權限和所有者。
這是我的配置文件:
apache2.conf
ServerRoot "/etc/apache2" LockFile ${APACHE_LOCK_DIR}/accept.lock PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_event_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy all </Files> DefaultType None HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel debug Include mods-enabled/*.load Include mods-enabled/*.conf Include ports.conf LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent Include conf.d/ Include httpd.conf
httpd.conf
<VirtualHost x.x.x.x:80> DocumentRoot /home/www/hostname.domain.tld ServerName hostname.domain.tld ServerAdmin soporte@domain.tld <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/www/hostname.domain.tld> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost x.x.x.x:80> DocumentRoot /home/www/static.domain.tld ServerName static.domain.tld ServerAdmin soporte@domain.tld <Directory /home/www/static.domain.tld> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost x.x.x.x:80> DocumentRoot /home/www/mail.anijapan.com ServerName mail.domain.tld ServerAdmin soporte@domain.tld <Directory /home/www/mail.domain.tld> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost x.x.x.x:80> DocumentRoot /home/www/bugs.domain.tld ServerName bugs.domain.tld ServerAdmin soporte@domain.tld <Directory /home/www/bugs.domain.tld> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
埠.conf
NameVirtualHost x.x.x.x:80 Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
我嘗試了不同的東西,在 Google 中查看等,但沒有任何結果。
有人知道我的問題嗎?
謝謝!
我終於可以讓 Apache 正常工作而不會出現 403 錯誤。403錯誤的原因很簡單,它不在伺服器上。
對於域 DNS 管理,我使用 CloudFlare。為了在伺服器 HD 更改時提供服務,我將所有網站移動到具有新 IP 的另一台伺服器。在新 HD 上安裝作業系統後,我將網站從救援伺服器移動到新磁碟,並且我在 CloudFlare 上將 DNS 記錄的 IP 更改為舊的,但 CloudFlare 在這裡失敗,因為它們沒有通過內部錯誤傳播新的 IP 地址。我看到製作跟踪路由(非常愚蠢的解決方案但有效)來查看 A 記錄的真正最終目的地,而不是出現在 CloudFlare 上的最終目的地。
為了讓 CloudFlare 使用正確的 A 記錄,我已將其刪除,保存更改,然後將 A 記錄添加到正確的 IP 地址。一旦我這樣做,一切都開始正常工作。
像這樣啟動apache,前台+調試,如果由於某種原因它無法寫入日誌,那麼它將以這種方式啟動。
. /etc/apache2/envvars apache2 -e debug -DFOREGROUND
另一個建議是查看 /var/log/messages 和 /var/log/syslog,但您可能已經完成了此頁面zroger.com中的更多資訊