我正在关注 Railscast http://railscasts.com/episodes/293-nginx-unicorn?view=asciicast关于在 Vagrant 上设置 Nginx 和 Unicorn 的内容,但有一个重要区别。Ryan 使用 Rails 3 制作他的应用程序(具有 Rails 4 仅动态生成的默认 /public/index.html)。安装并运行 Nginx 后,我们可以在端口 8080 上看到默认页面。然后我们为 Nginx 创建了一个基本配置文件,并将其放入 rails 应用程序的 config 目录
/config/nginx.conf
server {
listen 80 default;
# server_name example.com;
root /vagrant/public;
}
然后删除启用并符号链接到配置文件的站点中的默认页面
vagrant@lucid32:/etc/nginx/sites-enabled$ sudo rm default
vagrant@lucid32:/etc/nginx/sites-enabled$ sudo ln -s /vagrant/config/nginx.conf todo
之后,Ryan 重新启动了 nginx,并能够在 localhost:8080 看到 Rails 索引页面。但是,当我访问 localhost:8080 时,我收到 403 Forbidden 错误。
403 Forbidden
nginx/1.1.19
更新
由于 Rails 4 不再有 public/index.html 文件,我认为 403 错误可能是由此引起的,正如我从这篇博文
http://www.nginxtips.com/403-forbidden-nginx/中了解到的那样. 它说在on
配置中将自动索引设置为(默认为关闭),但我不确定如何设置它以显示 Rails 主页。
当我这样做时
server {
listen 80 default;
root /vagrant/public;
location / {
autoindex on;
}
}
它摆脱了 403 权限错误(耶!),但是,它没有显示默认的 Rails 主页。相反,它显示了目录结构,所以我想知道设置它的正确方法是什么。
如果我尝试将其设置为位置/公共,我会再次收到 403 错误。有任何想法吗?
location /public {
autoindex on;
}
更新
由于我使用的是 Vagrant(虚拟框),因此应用程序位于 /vagrant 中,但是将位置设置为 location/vagrant 也会导致 403 错误
location /vagrant {
autoindex on;
}