Nginx

Nginx 通過框架集服務頁面

  • February 16, 2015

我正在使用 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 伺服器,該伺服器提供一個內聯框架,該框架反過來載入實際頁面。我要求客戶刪除域遮罩,現在一切正常。

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