我想使用节点js从一台服务器运行到另一台服务器来运行子进程。我的进程运行太重,导致主服务器工作缓慢,因此我想在另一台服务器上运行繁重的进程,该服务器将执行繁重的任务,例如数据修改并返回该数据的缓冲区,但我找不到类似的东西
例如,我有运行我的网站的服务器A
,并且用户正在使用该服务器共享其内容。当用户的流量激增时,由于图像,视频上传以及基于基本图像,视频和为网站内容提供服务的pdf报告等数据,我的服务器将变慢。我想在服务器B
上执行这些任务,以便服务器A
仅适用于数据服务和流量管理。
答案 0 :(得分:1)
显然,这时您可能需要将Web服务器前端路由拆分为不同的工作服务器。
让我们假设您使用Nginx作为网站前端。如果不是这样,那么第一步将是设置nginx Webfront。
1-如果尚未这样做,则使用静态内容和节点服务器路由的不同规则直接从nginx提供所有公共静态内容(例如pdf文件,视频,图像等):
基本的东西
server {
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5000;
}
location /static {
root /dir/to/my/static/files; # here you have your videos, images, etc.
}
}
2-现在,如果需要将节点服务器分成2个服务,则只需创建2个(或更多)nginx代理规则:
server {
listen 80;
server_name example.com;
location /api {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.2:5000; # server 2
}
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5000; " server 1
}
location /static {
root /dir/to/my/static/files;
}
}
这样,example.com/api/*
路由将转到您的辅助节点服务器(在IP 127.0.0.2
上),example.com/static
将由Nginx直接提供超快的速度,而未映射的路由将由127.0.0.1
上的默认主节点服务器提供服务。
有很多设置代理和优化Nginx的方法,例如,它可以循环方式遍历节点服务器池,还可以压缩数据并使用HTTP / 2之类的协议来获取Nginx。卸载较慢的基于节点的Web服务器(即Express)。