带sails.js的虚拟主机

时间:2014-05-20 05:05:15

标签: sails.js

我想为我的应用设置子域名。
例如:

myapp.com  
admin.myapp.com  
static.myapp.com 

目录结构如下:

myapp
  frontend [sails app] -> myapp.com
  backend [sails app] -> admin.myapp.com
  static [express app] -> static.myapp.com
  app.js

在快递中,我可以使用vhost 我怎样才能在sails.js中实现这个目标?

2 个答案:

答案 0 :(得分:1)

我没有尝试过,但我认为可以使用Nginx的反向代理来完成。

假设您有2个SailsJS项目(Sails1和Sails2)配置为分别在两个不同的端口(端口1337和端口1338)上运行。您可以通过在/config/locals.js中进行更改来配置SailsJS应用程序在任何端口上运行

现在按照以下步骤操作:

  • 使用" sails lift"运行两个应用程序。或者"永远"命令
  • 安装Nginx
  • 配置Nginx
  

$ cd / etc / nginx / sites-available /

     

$ sudo touch sails1.conf

     

$ sudo touch sails2.conf

     

$ sudo ln -s /etc/nginx/sites-available/sails1.conf   /etc/nginx/sites-enabled/sails1.com.conf

     

$ sudo ln -s /etc/nginx/sites-available/sails2.conf   /etc/nginx/sites-enabled/sails2.conf

将以下内容放在/etc/nginx/sites-available/sails1.conf

server {
  listen 80;
  server_name sails1.com;
  location / {
      proxy_pass http://localhost: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;
  }
}

将以下内容放在/etc/nginx/sites-available/sails2.conf

server {
  listen 80;
  server_name sails2.com;
  location / {
      proxy_pass http://localhost:1338;
      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;
  }
}

重新启动Nginx并尝试访问sails.com和sails2.com,希望您能够看到您的网站。

答案 1 :(得分:0)

我没有直接使用vhosts和sails,但你可以很容易地访问底层的快速引擎..

//./config/express.js
module.exports.express = {
    customMiddleware: function (app) {

        app.use(vhost('*.example.com', require('app1'));  
            app.use(vhost('example.com', function(..){...})); 


            app.use('/queue', require('kue').app);
    }
}