1

我在数字海洋上有一个 VPS。我可以使用 nginx+passenger 在同一个 VPS 上运行多个 Rails 应用程序。现在我想映射域名。为此我该怎么办?

我的 nginx.conf 文件

   server {
    listen       80;
    server_name  localhost;

    location ~ ^/uvarsity(/.*|$) {
        alias /home/uvarsity/public$1;  # <-- be sure to point to 'public'!
        passenger_base_uri /uvarsity;
        passenger_app_root /home/uvarsity;
        passenger_document_root /home/uvarsity/public;
        passenger_enabled on;
        rails_env production;
    }
   location ~ ^/uvarsity-landing(/.*|$) {
        alias /home/uvarsity-lp/public$1;  # <-- be sure to point to 'public'!
        passenger_base_uri /uvarsity-landing;
        passenger_app_root /home/uvarsity-lp;
        passenger_document_root /home/uvarsity-lp/public;
        passenger_enabled on;
        rails_env production;
    }
 location / {
      root /home/amaravati/public;  # <-- be sure to point to 'public'
        passenger_enabled on;
    }
}
4

1 回答 1

1

你想要的是虚拟主机。

这里的技巧是upstream在 NGINX 中定义一个部分来定义每个应用程序的后端服务器,然后是一个server将流量传递到上游的部分。

这是一个非常简单的示例,我用来提供一个localhost重定向到在 VirtualBox 上运行的虚拟机的虚拟主机。我正在使用localhost,但唯一的要求是您的浏览器通过与配置中的块中的server_name设置匹配的名称来请求主机。 servernginx

upstream apache {
        server 192.168.70.1:1025;
}

server {
        server_name localhost;
        location / {
                proxy_pass http://apache;
        }

}
于 2014-03-08T08:19:53.323 回答