Nginx
Nginx 通過框架集服務頁面
我正在使用 Nginx 為在埠 3000 上執行的 nodejs 提供代理請求。這是我的配置:
server { listen 80; server_name example.com; root /home/example/app; access_log /home/example/access.log; error_log /home/example/error.log; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
當我在瀏覽器中訪問該站點時,我可以看到來自伺服器的初始響應是一個框架集,它依次載入頁面。使用者不會注意到所有這些,直到您將滑鼠懸停在連結上並看到 IP 地址而不是實際 URL。這是初始響應(其中 1.1.1.1 是我的伺服器的實際 IP 地址):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>My cool site</title> </head> <frameset rows="100%,*" border="0"> <frame src="http://1.1.1.1" frameborder="0" /> <frame frameborder="0" noresize /> </frameset> <!-- pageok --> <!-- 06 --> <!-- --> </html>
下一個請求是針對實際內容的。通過使用執行在埠 3000 上的 php 內置伺服器啟動一個簡單的 php 腳本,我已經將節點 js 排除在外。我遇到了同樣的問題。
我正在執行 nginx/1.4.6 (Ubuntu)。
問題不在於伺服器。它是設置為 DNS 遮罩的域。我通過 dig 檢查了實際域指向的位置,並註意到它沒有指向我的伺服器。它指向一個 Godaddy 伺服器,該伺服器提供一個內聯框架,該框架反過來載入實際頁面。我要求客戶刪除域遮罩,現在一切正常。