如何安装多个域的多个nodejs应用程序?

时间:2013-02-07 21:16:48

标签: javascript node.js nginx express

我在这个时间比以往任何时候都阅读更多,这将是我的第一个网页,所以我决定在nodejs上安装。我很快就开始使用应用程序,并在localhost:9000

中进行测试

所以我想在VPS上运行更多的应用程序,我搜索信息,我有两个选项

首先使用nginx代理应用程序......

upstream example1.com {
    server 127.0.0.1:3000;
}

server {
listen   80;
server_name  www.example1.com;
rewrite ^/(.*) http://example1.com/$1 permanent;
}

# the nginx server instance
server {
    listen 80;
    server_name example1.com;
    access_log /var/log/nginx/example1.com/access.log;

    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://example1.com;
      proxy_redirect off;
    }
 }

我不明白这个配置文件因为我从不使用nginx所以我搜索第二个选项

使用来自expressjs()的vhost

express()
.use(express.vhost('m.mysite.com', require('/path/to/m').app))
.use(express.vhost('sync.mysite.com', require('/path/to/sync').app))
.listen(80)

我正在使用expressjs并且我理解如何配置,但是有一些关于这是最好的选择的问题,因为使用express()我有一个应用程序管理多个应用程序所以我认为这不是一个好的做法和浪费资源

来自this帖子的

,David Ellis说

如果您不需要使用WebSockets(或任何HTTP 1.1功能),您可以使用NginX作为代理。

优点是NginX可以处理的总负载与Node相比更高(基本上是静态编译和专门用于此类事情),但是你失去了传输任何数据的能力(一次发送较小的块)。 / p>

对于较小的网站,或者如果您不确定将来需要哪些功能,最好坚持使用node-http-proxy并且只有在您可以证明代理是瓶颈的情况下才切换到NginX你的服务器。幸运的是,如果你以后需要它,NginX并不难设置。

this帖子我读了一个例子来配置许多应用程序的xginx,但我不明白如何使用它

upstream example1.com {
    server 127.0.0.1:3000;
}

server {
listen   80;
server_name  www.example1.com;
rewrite ^/(.*) http://example1.com/$1 permanent;
}

# the nginx server instance
server {
    listen 80;
    server_name example1.com;
    access_log /var/log/nginx/example1.com/access.log;

    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://example1.com;
      proxy_redirect off;
    }
 }

upstream example2.com {
    server 127.0.0.1:1111;
}

server {
listen   80;
server_name  www.example2.com;
rewrite ^/(.*) http://example2.com/$1 permanent;
}

# the nginx server instance
server {
    listen 80;
    server_name example2.com;
    access_log /var/log/nginx/example2.com/access.log;

    # pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://example2.com;
      proxy_redirect off;
    }
 }

所以问题是最好的选择,使用nginx或使用vhost ???

如果我必须使用nginx,那么有任何教程如何配置nginx来为节点js上的许多应用程序提供服务?

全部

1 个答案:

答案 0 :(得分:3)

你的Nginx配置示例似乎是你正在寻找的。您应该在/ etc / nginx / sites-available下创建配置文件,然后为要启用/ etc / nginx / sites-enabled的人创建符号链接

也许这会对你有帮助 - http://blog.dealspotapp.com/post/40184153657/node-js-production-deployment-with-nginx-varnish