Javascript 如何在ngnix上为生产环境配置nodejs
我必须用angularjs和nodejs开发一个聊天系统。 要发送和接收消息,我使用socket.io。 对于nodejs,我使用localhost cmd创建nodejs服务器 这很好,但现在我必须把它付诸实践 所以我不明白如何将nodejs代码放到live上 我有一个vps服务器,节点js在那里工作 这是我的angularjs系统url 这是套接字工作的nodejs服务器链接 所以我的问题是: 如何在ngnix服务器上为生产环境使用nodejs代码Javascript 如何在ngnix上为生产环境配置nodejs,javascript,angularjs,node.js,sockets,Javascript,Angularjs,Node.js,Sockets,我必须用angularjs和nodejs开发一个聊天系统。 要发送和接收消息,我使用socket.io。 对于nodejs,我使用localhost cmd创建nodejs服务器 这很好,但现在我必须把它付诸实践 所以我不明白如何将nodejs代码放到live上 我有一个vps服务器,节点js在那里工作 这是我的angularjs系统url 这是套接字工作的nodejs服务器链接 所以我的问题是: 如何在ngnix服务器上为生产环境使用nodejs代码 谢谢一种方法是将nginx配置为反向代
谢谢一种方法是将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;
}
}
有关更详细的说明,请参见此处的帖子:您能提供您的目录结构吗?我认为这取决于您是否希望通过nginx或nodejs为前端提供服务 据我所知,上述示例配置仅在nodejs为前端服务的情况下有效
public
的新目录,并将其放入整个前端应用程序中app.use(express.static(uu dirname+/public))在调用之前,请在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;
}
}
我已经遵循了这些教程,但我不明白这是如何工作的。我的代码angularjs和node js都在同一台服务器上。我无法理解我是如何发送消息以及NodeJ是如何获得消息的,但当我加载时,NodeJ响应并不是我的整个站点,但我必须为前端呈现所有html和angularjs代码,我只想监听套接字消息。实际上,这是聊天系统,这个应用程序。使用(express.static(u dirname+'/public');加载一个html页面我不需要这个。我通过angularjs加载html apge,在这个页面中,我创建了socket并将消息发送到app.js节点js文件。在这种情况下,我建议您在socket.twodegrees.io这样的子域上启动socket.io。因此,最后您需要2个Nginx配置。