我在Digital Ocean Droplet上运行了两个Meteor应用程序。使用nginx反向代理。两者都在非www域上成功运行,但在www.my-domain1.com和www.my-domain2.com上只欢迎使用Debian上的nginx!'页面。 我假设它是因为在配置文件中我只使用非www域如下:
server {
listen 80;
server_name my-domain1.com;
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 X-Forwarded-For $remote_addr;
}
}

和第二个应用程序的类似但不同的域和端口。我尝试使用Digital Ocean tutorial.重定向,但它不起作用,我也应该看到应用程序在www域上工作。
答案 0 :(得分:2)
当前服务器正在端口80上侦听具有my-domain1.com HOST标头的任何请求。
您首先需要在server_name行添加www.my-domain1.com和www.my-domain2.com:
server_name my-domain1.com my-domain2.com www.my-domain1.com www.my-domain2.com;
然后重启Nginx。虽然有些指南会告诉您在server_name指令中使用* .my-domain1.com * .my-domain2.com;我不这样做,因为在Nginx方面需要更多的工作。一般来说,当您在同一个Nginx服务器中提供更多主机名时,更难调试全部捕获设置。
需要考虑的另一件事是上游服务器主机名。例如,如果您的上游应用程序正在侦听my-domain1.com;您需要这样做,以便所有代理请求都包含此域名;否则上游应用程序将无法按预期提供请求。
您可能需要添加
proxy_set_header Host my-domain1.com;