我将流星应用程序部署到数字海洋液滴并将其映射到域。我对服务器管理很陌生,所以我按照指南设置了一个反向代理,用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
预先设置为变量并传递它,但没有成功。
有没有人遇到过类似的问题?
答案 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