Nginx反向代理只能工作几次,然后失败

时间:2016-02-28 10:53:07

标签: meteor nginx proxy reverse-proxy digital-ocean

我将流星应用程序部署到数字海洋液滴并将其映射到域。我对服务器管理很陌生,所以我按照指南设置了一个反向代理,用nginx指向正确的端口(流星应用程序在端口3000上提供)。

我使用以下内容在trackburnr.com中创建了一个名为/etc/nginx/sites-available的文件:

server {  
 listen 80;
 server_name trackburnr.com;

 location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
 }
}

启动/重启nginx服务。

现在,抓住了。如果我导航到trackburnr.com:3000,它总是有效。所以我相信我在域上的Droplet和DNS记录工作正常。

如果我导航到trackburnr.com,它似乎工作正常,但如果我在几分钟后刷新页面或使用其他浏览器导航到它,它将从我的互联网提供商返回“找不到页面”页面。

如果我重新启动服务,它通常可以再工作几分钟,然后再停止工作。

有几个关于此的指南,因为它是部署流星应用程序的流行设置,但它们都使用相同的方法。

在此处的另一个答案之后,我尝试将proxy_pass预先设置为变量并传递它,但没有成功。

有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:1)

我想我明白了。我的域名提供商设置了DNS重定向,将trackburner.com重定向到www.trackburnr.com。显然,子域未在nginx中映射。

我尊重重定向,以便www重定向到非www版本,这似乎可以解决问题。

之后我开始400 Bad Request。我将此归因于我的标题中的Google分析代码,这使得Cookie太大了。我通过将large_client_header_buffers 4 16k;添加到nginx conf文件中的服务器标记来修复此问题。有关here

的更多信息
相关问题