我正在使用Nginx向在端口3000上运行的nodejs提供代理请求。以下是我的configuration:
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; } }
当我在浏览器中访问该网站时,可以看到服务器的初始响应是一个框架集,然后轮stream加载该页面。 所有这些对于用户来说都是不明显的,直到你将鼠标hover在链接上并且看到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脚本,我已经将节点j从等式中排除了。我也遇到同样的问题。
我正在运行nginx / 1.4.6(Ubuntu)。
问题不在于服务器。 这是设置为DNS掩码的域。 我通过挖掘检查实际域指向哪里,并注意到它没有指向我的服务器。 它指向一个Godaddy服务器,它服务于一个内联框架,而内联框架则依次加载实际的页面。 我问客户端删除域掩码,现在一切正常。