我在端口4200
上运行的Ember应用程序在端口4500
上使用Express API。我已将API上传到:
/var/www/my-api-domain.com/public_html/
我还编辑了nginx sites-available
文件:
location /
{
proxy_pass http://localhost:4500;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
我通过SSH连接到服务器,将目录更改为我的API,然后运行node server
,这有效!当我在浏览器中访问我的IP时,我看到我的API正常工作:
然后我在本地运行ember build -prod
并将生成的dist
文件夹的内容上传到:
/var/www/my-ember-domain.com/public_html/
我再次使用:
更新了nginxsites-available
location /ember
{
proxy_pass http://localhost:4200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
现在怎样?通常,当我在本地运行该站点时,我会运行ember server
,但dist
中生成的文件看起来大不相同,我在服务器上没有安装ember cli
。当我读到它时,这似乎不是正确的方法。
当我在浏览器中点击http://159.203.31.72/ember时,我会收到一个nginx 502 Bad Gateway
。我如何服务我的Ember应用程序?
答案 0 :(得分:1)
ember server
启动了一个开发服务器,不应该在生产中使用。使用ember build --prod
构建您的应用。之后,您将在dist/
文件夹中找到您的资产。用nginx服务那些,你就完成了。在ember-cli文档中有一个示例nginx.conf
:https://ember-cli.com/user-guide/#deploying-an-https-server-using-nginx-on-a-unixlinuxmacosx-machine
如果您需要设置更复杂的部署工作流程,则可以使用ember-cli-deploy。