如何使用 Nginx 为多个 Meteor 实例做一个反向代理
How to do a reverse-proxy with Nginx for multiple instance of Meteor
问题
我正在尝试在一个服务器 Web 上部署 Meteor 的多个实例。
每个项目都有自己的域名(比如 'A' -> 'A.com'、'B' ..),但服务器只有一个网站 port:80。所以我想用 Nginx to follow this article
部署
我正在使用 meteor-up (version mupx) 来部署每个应用程序。这是 mup.json
的裁剪示例
{
"appName": "A",
"env": {
"PORT": "3001",
"ROOT_URL": "http://www.A.com"
},
}
Nginx
这是我的版本 /etc/nginx/sites-available/A.com.conf
server {
listen *:80;
server_name A.com;
access_log /var/log/nginx/app.dev.access.log;
error_log /var/log/nginx/app.dev.error.log;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $remote_addr;
}
}
结果
对于每个域,当我调用时:
:80 -> Ngninx Welcome page
:3001 -> A.com
:3002 -> B.com
..
如何在调用 whatever:80
时根据域名获得正确的站点?
所以解决方案是简单地添加服务器名称的所有可能版本,而不仅仅是域名。
像这样
/etc/nginx/sites-available/A.com.conf
server {
listen *:80;
server_name A A.com *.A.com;
access_log /var/log/nginx/app.dev.access.log;
[...]
问题
我正在尝试在一个服务器 Web 上部署 Meteor 的多个实例。
每个项目都有自己的域名(比如 'A' -> 'A.com'、'B' ..),但服务器只有一个网站 port:80。所以我想用 Nginx to follow this article
部署
我正在使用 meteor-up (version mupx) 来部署每个应用程序。这是 mup.json
{
"appName": "A",
"env": {
"PORT": "3001",
"ROOT_URL": "http://www.A.com"
},
}
Nginx
这是我的版本 /etc/nginx/sites-available/A.com.conf
server {
listen *:80;
server_name A.com;
access_log /var/log/nginx/app.dev.access.log;
error_log /var/log/nginx/app.dev.error.log;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $remote_addr;
}
}
结果
对于每个域,当我调用时:
:80 -> Ngninx Welcome page
:3001 -> A.com
:3002 -> B.com
..
如何在调用 whatever:80
时根据域名获得正确的站点?
所以解决方案是简单地添加服务器名称的所有可能版本,而不仅仅是域名。
像这样
/etc/nginx/sites-available/A.com.conf
server {
listen *:80;
server_name A A.com *.A.com;
access_log /var/log/nginx/app.dev.access.log;
[...]