我希望這是發布此內容的正確位置。
我有一個託管多個網站的 CentOS 6 VPS。目前有三個現有站點在其上運行得很好,但我現在正在嘗試添加第四個站點,並且總是收到“歡迎來到 Fedora 上的 nginx!”當我造訪 URL 時出現歡迎頁面(我們稱之為 nginxFail.com)。
我將 test.txt 檔案放在 /home/nginxFail/www 中,並嘗試造訪 nginxFail.com/test.txt。它拋出了 403。
我已經嘗試過的:
-驗證網域資訊:新網域名稱和其他三個網域的網域資訊完全相同,包括SPF資訊。新域名大約有 5 天的傳播時間。
-驗證httpd.conf:這是我所擁有的:
<VirtualHost *:80>
DocumentRoot /home/**nginxFail**/www
ServerName **nginxFail.com**
ServerName **<my server IP>**
ErrorLog /var/log/httpd/**<errorLog>**
CustomLog /var/log/httpd/access_log combined
<Directory "/home/**nginxFail**/www">
Options +Indexes FollowSymLinks +ExecCGI
Order allow,deny
allow from all
</Directory>
</VirtualHost>
當然,粗體的條目是我的實際訊息。這與該文件中使其他三個站點正常工作的其他條目完全相同。
這裡還有壓縮的 /etc/nginx/nginx/conf:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
#
# The default server
#
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
- 重新啟動伺服器(和/etc/init.d/httpd)。沒有運氣。
-嘗試另一台機器:我讀到,nginx 的問題可能是由病毒或主機檔案造成的。我的機器總是乾淨的(不斷進行病毒掃描,不信任瀏覽器運行的錯誤掃描,哈哈),而且我的主機檔案看起來很乾淨。只是為了好玩,我嘗試在另一台電腦上甚至在我的手機上訪問該網站,我得到了相同的 nginx 頁面。
-Google:它讓我失望了! :o,這就是我了解瀏覽器清理的方式。
-驗證權限:在我的伺服器上,所有網站都列在 /home/ 目錄中各自的資料夾中。這也是我放置新網站條目的地方。正如之前所說,其他三個網站工作正常,因此這不是 /home/ 的權限問題,而且我已確保 home/nginxFail/www 有 755 (就像其他工作網站一樣)。
-查看 /etc/nginx/ 目錄:我注意到沒有啟用網站的目錄。我在另一個問題中看到這可能是原因,但如果是這樣的話,為什麼其他 3 個網站可以正常工作?
-查看日誌:除了確認 Web 伺服器正在取得 HTTP 請求並拋出 403 之外,我在 var/log 中沒有真正找到任何內容。訪問上面提到的 test.txt 檔案後,我查看了日誌目錄以了解 mod 日期的更改,以查看要查看哪些檔案。
-口頭告訴網站停止顯示 nginx 並請顯示我的網站:不走運。
- 在 /etc/nginx 中查看:我讀到那裡有一個網站可用目錄應該對我有幫助,但當我以 root 身份登入時我看不到它。
我在這裡有點不知所措。
編輯:我對這個問題做了一些更多的研究,看起來與 Apache 和 nginx 的奇怪衝突是罪魁禍首。
該網站運行 Apache 2.2.23,並且似乎也安裝了 nginx,這可能是錯誤的。我收到的 403 頁面表明 Apache 已啟動,但出於某種原因,進入網域本身會讓我轉向 nginx。我的自然想法是用 停止 nginx /etc/init.d/nginx -s stop
。當我這樣做並返回 nginxfail.com 時,nginx 頁面仍然顯示。當我這樣做時,ps -ef | grep nginx
即使我停止了 nginx 進程,我也可以看到它正在運行,據我所知,伺服器上不應該有任何腳本自動重新啟動它。
這就是有趣的地方,當我這樣做時/etc/init.d/httpd stop
,所有 4 個站點都會死掉,包括 nginxfail.com 和其他 3 個工作站點,當我重新打開 httpd 時,會出現第一篇文章中的相同情況。
我查看了 /etc/httpd/error_log 並收到錯誤 Client returned by server configuration: /home/nginxfolder/www/ 並驗證了權限,因此 Web 伺服器(我很確定在本例中是 Apache)似乎尋找正確的位置。
如果這很模糊並且不能很好地說明我的設置,我很抱歉。還有其他有幫助的具體資訊嗎?