我必须使用angularjs和nodejs开发聊天系统。 要发送和接收消息,请使用socket.io。 对于节点j,我使用localhost cmd创建nodejs服务器。
这工作正常,但现在我必须把它付诸实践。
所以我不明白如何将nodejs代码置于实时
我有节点js工作的vps服务器
这是我的angularjs系统网址
这是socket正在运行的nodejs服务器链接
所以我的问题是: 我如何在ngnix服务器上使用nodejs代码进行生产环境 感谢
答案 0 :(得分:0)
这样做的一种方法是将nginx配置为反向代理。这会将到达您服务器的请求重定向到该服务器上运行的nodeJs应用程序。
以下是您可以添加到/etc/nginx/sites-available/default
文件的示例块,此块会将请求从app.twodegrees.io
重定向到本地计算机上的端口3000。
server {
listen 80;
server_name app.twodegrees.io;
location / {
proxy_pass http://localhost:3000;
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;
}
}
如需更详细的说明,请点击此处的帖子:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04
答案 1 :(得分:0)
你能提供你的目录结构吗?我认为这取决于你是否想通过nginx或nodejs来提供你的前端......
据我所知,上面的示例配置仅适用于您的情况,如果nodejs正在为前端提供服务。
public
的node.js后端应用程序中创建一个新目录并放入整个前端应用程序app.use(express.static(__dirname + '/public'));
中致电listen
之前,server.js
醇>
更新:
角度前端的配置
server {
listen 80;
server_name app.twodegrees.io;
root /usr/share/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Socket.io后端的配置
server {
listen 80;
server_name socket.twodegrees.io;
location / {
proxy_pass http://localhost:3000;
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;
}
}