我买了一台DigitalOcean Droplet,我想用它来托管几个网站
所有这些网站都有Node.js中的服务器。我的Droplet的结构是每个网站的目录和每个目录中的文件server.js
。
当我想将网站放到网上时,我会在正确的目录中运行node server.js
。这将创建在端口80上运行的服务器实例。
与此同时,我在GoDaddy购买了几个域名:site1.com,site2.com等。
我的问题是:如何在域重定向到正确的服务器的同时运行所有Node实例?
我不需要创建一个处理所有传入服务器请求的文件的解决方案(除非这是非常通用的,我每次添加时都不需要修改新网站)。
我想为每个网站使用不同的端口,但我不认为可以将域site1.com:80重定向到ip_address:another_port。
答案 0 :(得分:2)
到目前为止,更简单的方法是:
这种方式还可以让您直接使用nginx托管所有静态文件,处理HTTPS,创建访问日志......以及网络服务器通常所做的一切!
server {
listen 80;
server_name domain1.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8001;
}
}
server {
listen 80;
server_name domain2.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8002;
}
}