Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Nginx+;乘客:多个域需要指向不同的根_Ruby On Rails_Ruby_Nginx_Passenger - Fatal编程技术网

Ruby on rails Nginx+;乘客:多个域需要指向不同的根

Ruby on rails Nginx+;乘客:多个域需要指向不同的根,ruby-on-rails,ruby,nginx,passenger,Ruby On Rails,Ruby,Nginx,Passenger,一直在与Nginx和乘客合作。我已成功使一个应用程序/域正常工作。但在我的服务器上,我有两个以上的域,我计划将它们从nginx发送到各自的根目录,每个rails应用程序都将在那里生存 我尝试过很多技巧,但都不管用。所有域都采用第一个根目录设置,而不是它们应该采用的根目录 这是我的nginx.conf文件: server { listen 80; server_name www.danielcw.info; root /root/public/danielcw.inf

一直在与Nginx和乘客合作。我已成功使一个应用程序/域正常工作。但在我的服务器上,我有两个以上的域,我计划将它们从nginx发送到各自的根目录,每个rails应用程序都将在那里生存

我尝试过很多技巧,但都不管用。所有域都采用第一个根目录设置,而不是它们应该采用的根目录

这是我的nginx.conf文件:

  server { 
    listen 80;
    server_name www.danielcw.info;
    root /root/public/danielcw.info/public;   # <--- be sure to point to 'public'!
    access_log  /root/public/danielcw.info/log/access.log;
    error_log /root/public/danielcw.info/log/error.log;
    passenger_enabled on;
    rails_env development;
  } 

  server {
    listen 80;
    server_name www.ericoppi.com;
    root /root/public/ericcoppi.com/public;   # <--- be sure to point to 'public'!
    access_log  /root/public/ericcoppi.com/log/access.log;
    error_log /root/public/ericcoppi.com/log/error.log;
    passenger_enabled on;
    rails_env development;
  }
服务器{
听80;
服务器名称www.danielcw.info;

root/root/public/danielcw.info/public;#配置应该正常工作-我唯一要做的更改是通过nginx为www和no-www提供服务:

  server { 
    listen 80;
    server_name danielcw.info www.danielcw.info;
    root /root/public/danielcw.info/public;
    access_log  /root/public/danielcw.info/log/access.log;
    error_log /root/public/danielcw.info/log/error.log;
    passenger_enabled on;
    rails_env development;
  } 

  server {
    listen 80;
    server_name ericoppi.com www.ericoppi.com;
    root /root/public/ericcoppi.com/public;
    access_log  /root/public/ericcoppi.com/log/access.log;
    error_log /root/public/ericcoppi.com/log/error.log;
    passenger_enabled on;
    rails_env development;
  }

确保在编辑配置文件后重新启动了nginx。

该配置应正常工作-我唯一要做的更改是通过nginx为www和no www提供服务:

  server { 
    listen 80;
    server_name danielcw.info www.danielcw.info;
    root /root/public/danielcw.info/public;
    access_log  /root/public/danielcw.info/log/access.log;
    error_log /root/public/danielcw.info/log/error.log;
    passenger_enabled on;
    rails_env development;
  } 

  server {
    listen 80;
    server_name ericoppi.com www.ericoppi.com;
    root /root/public/ericcoppi.com/public;
    access_log  /root/public/ericcoppi.com/log/access.log;
    error_log /root/public/ericcoppi.com/log/error.log;
    passenger_enabled on;
    rails_env development;
  }

请确保在编辑配置文件后重新启动了nginx。

在进行配置更改后是否尝试重新启动服务器?在进行配置更改后是否尝试重新启动服务器?谢谢,我想添加最后一点可以让它正常工作。如果您使用上一次确认访问了无www版本g、 它将不匹配任何一个服务器块。然后,nginx将选择它认为是“默认”的服务器,从而使它看起来像你在两个域上看到的是同一个站点。谢谢,我猜添加最后一点使它工作起来。如果你使用以前的配置访问了无www版本,它将与两个服务器块都不匹配。然后nginx将选择它认为是“默认”的服务器,从而使它看起来像您在两个域上看到相同的站点。