【问题标题】:nginx - how to create rails app without app name in domainnginx - 如何在域中创建没有应用程序名称的 Rails 应用程序
【发布时间】:2015-04-23 19:56:30
【问题描述】:

我正在使用带有乘客的 nginx,我想问一下,如何创建 rails 应用程序,而不在域中显示应用程序名称。 目前我知道如何使用这样的域设置 nginx 配置:

domain.com/app_name

当我创建 root 'welcome#index' 时,在路由文件中 我仍然需要输入domain.com/app_name 来查看我的控制器,但是当域只是domain.com 时如何让它显示欢迎控制器

我的 nginx 配置看起来是这样的:

server {
  listen 80 default_server;
  server_name domain.com;
  root /home/username/rails;

    location ~ ^/app_name(/.*|$) {
      alias /home/username/rails/app_name/public$1;  # <-- be sure to point to 'p$
      passenger_base_uri /app_name;
      passenger_app_root /home/username/rails/app_name;
      passenger_document_root /home/username/rails/app_name/public;
      passenger_app_env development;
      passenger_enabled on;
    }
}

当我尝试注释掉 #passenger_base_uri /app_name 时,我得到了 403 错误代码。 任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 nginx passenger


    【解决方案1】:

    您需要删除 location 块、aliaspassenger_base_uripassenger_app_rootpassenger_document_root。也将 root 更改为 Rails public 目录。它应该是这样的:

    server {
      listen 80 default_server;
      server_name domain.com;
      root /home/username/rails/app_name/public;
    
      passenger_app_env development;
      passenger_enabled on;
    }
    

    尝试遵循此生产 nginx 配置的示例,其中还包括一些配置服务器的最佳实践:https://gist.github.com/mikhailov/711913

    【讨论】:

    • 感谢您的帮助。我按照你说的做了并删除了所有的东西,但我还添加了root /home/username/rails/app_name/public;,现在它正在工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2011-04-28
    相关资源
    最近更新 更多