nginx - 如何在域中创建没有应用名称的rails应用

时间:2015-04-23 19:56:31

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

我正在和乘客一起使用nginx,我想问一下,如何创建rails app,而不在域中显示应用名称。 目前我知道如何使用域设置nginx配置:

# ...
# Wrote on Python:
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data+'\r\n')

conn.close()

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

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

domain.com

当我尝试评论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; } } 时,我收到了403 ERROR代码。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您需要移除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