【发布时间】:2018-07-02 19:57:31
【问题描述】:
我正在尝试使用我现有的 Nginx 和乘客设置运行一个非常简单的 Sinatra 应用程序。我熟悉在乘客上运行 Rails,但这是我第一次设置 Sinatra。
我已经通过捆绑器和 RVM 安装了 Sinatra。看看我的配置,告诉我我做错了什么。
Nginx 配置:
server {
listen 80;
server_name demo.my-example.com;
root /home/user/demo.my-example.com/sinatra;
passenger_ruby /usr/local/rvm/wrappers/ruby-2.3.1@my_gemset/ruby;
passenger_enabled on;
}
/home/user/demo.my-example.com/sinatra/config.ru
require 'rubygems'
Gem.clear_paths
disable :run, :reload
set :environment, :production
require "./stripe"
run StripeApp
/home/user/demo.my-example.com/sinatra/stripe.rb
require 'sinatra/base'
class StripeApp < Sinatra::Base
get '/' do
"Hello world"
end
end
【问题讨论】:
-
你的问题是什么?你有错误吗?错误信息是什么?
-
Nginx 错误日志显示:[error] 21037#0: *7 directory index of "/home/user/demo.my-example.com/sinatra/" is disabled, server: demo. my-example.com,请求:“GET / HTTP/1.1”,主机:“demo.my-example.com”
-
不应该是您的应用程序
public目录中的root入口点,而不是应用程序顶级目录吗? -
谢谢@matt 我以为我不需要 Sinatra 的公用文件夹,但是当我创建一个时,事情就到位了。我还必须从 config.ru 中删除 disable :run, :reload 和 set :environment, :production。
-
这个问题解决了吗?请发送正确的答案。 @MarkRobinson
标签: ruby nginx sinatra passenger