如何在数字海洋中使用 nginx 和 pm2 运行 两个独立的 Nodejs 应用程序
How to run two separates Nodejs app using nginx and pm2 in digital ocean
我有两个不同的 Nodejs 应用程序,我说我有
app1.example.com 和 app2.example.com 子域!
如何始终在 80 端口监听两个子域?我找不到任何来源来做这件事。
任何好的教程或指导!
我找到了这个:
{
"apps" : [{
"name" : "worker",
"script" : "./worker.js",
"watch" : true,
"env": {
"NODE_ENV": "development"
},
"env_production" : {
"NODE_ENV": "production"
}
},{
"name" : "api-app",
"script" : "./api.js",
"instances" : 4,
"exec_mode" : "cluster"
}]
}
但我不明白我怎么能 运行 两个项目都在端口 80 上。
基本上,您可以 运行 您的项目在不同的端口(不是 80)上,并在您的应用程序前面使用 nginx/apache 反向代理将它们映射到端口 80。
这是 Nginx 配置示例:
server {
listen 80;
server_name meantodo.com;
location / {
proxy_pass http://127.0.0.1:1337;
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;
}
}
这将使端口 (1337) 上的 nodeJS 应用程序在端口 80 上可用。
您可以为不同的子域等添加多个位置块。
或者您可以使用 Node.JS 反向代理:https://github.com/nodejitsu/node-http-proxy
我有两个不同的 Nodejs 应用程序,我说我有 app1.example.com 和 app2.example.com 子域!
如何始终在 80 端口监听两个子域?我找不到任何来源来做这件事。 任何好的教程或指导!
我找到了这个:
{
"apps" : [{
"name" : "worker",
"script" : "./worker.js",
"watch" : true,
"env": {
"NODE_ENV": "development"
},
"env_production" : {
"NODE_ENV": "production"
}
},{
"name" : "api-app",
"script" : "./api.js",
"instances" : 4,
"exec_mode" : "cluster"
}]
}
但我不明白我怎么能 运行 两个项目都在端口 80 上。
基本上,您可以 运行 您的项目在不同的端口(不是 80)上,并在您的应用程序前面使用 nginx/apache 反向代理将它们映射到端口 80。
这是 Nginx 配置示例:
server {
listen 80;
server_name meantodo.com;
location / {
proxy_pass http://127.0.0.1:1337;
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;
}
}
这将使端口 (1337) 上的 nodeJS 应用程序在端口 80 上可用。 您可以为不同的子域等添加多个位置块。
或者您可以使用 Node.JS 反向代理:https://github.com/nodejitsu/node-http-proxy