【问题标题】:Run multiple Ruby on Rails applications on nginx在 nginx 上运行多个 Ruby on Rails 应用程序
【发布时间】:2017-10-24 04:28:39
【问题描述】:

我正在尝试在 nginx 服务器上运行多个 Ruby on Rails 应用程序。我将conf文件设置如下:

server {
        listen 80;
        #server_name 10.0.1.216;

        # Tell Nginx and Passenger where your app's 'public' directory is

        location / {
                root /var/www/app-one/public;
        }

        location /dev {
                root /var/www/app-two/public;
        }

        # Turn on Passenger
        passenger_enabled on;
        passenger_ruby /home/ubuntu/.rvm/gems/ruby-2.4.1/wrappers/ruby;

    }

当我访问http://myurl 时,第一个应用程序运行良好。但是,当我访问http://myur/dev 时,nginx 将我抛出异常。谁能帮我弄清楚?

【问题讨论】:

    标签: ruby-on-rails ruby nginx


    【解决方案1】:

    你应该按照本教程配置nginx:https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/#deploying-an-app-to-a-sub-uri-or-subdirectory

    server {
        listen 80;
        root /var/www/app-one/public;
        passenger_enabled on;
    
        # This block has been added.
        location ~ ^/dev(/.*|$) {
            alias /var/www/app-two/public$1;  # <-- be sure to point to 'public'!
            passenger_base_uri /dev;
            passenger_app_root /var/www/app-two;
            passenger_document_root /var/www/app-two/public;
            passenger_enabled on;
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      尝试重新排序您的位置

      server {
          # ...
      
          location /dev {
                  root /var/www/app-two/public;
          }
      
          location / {
                  root /var/www/app-one/public;
          }
      
          # ...
      }
      

      根据文档http://nginx.org/en/docs/http/ngx_http_core_module.html#location

      正则表达式的搜索在第一次匹配时终止,并使用相应的配置

      / 将匹配所有路径,因为所有路径都以这种方式开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 2011-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-08
        • 1970-01-01
        相关资源
        最近更新 更多