首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Nginx和Phusion Passenger上运行的密码保护Rails站点

在Nginx和Phusion Passenger上运行的密码保护Rails站点
EN

Stack Overflow用户
提问于 2010-11-13 15:27:41
回答 3查看 5.2K关注 0票数 10

我想使用基本的http身份验证来保护我新部署的Rails3应用程序。它在最新的Nginx/Passenger上运行,我使用以下Nginx指令来保护web根目录:

代码语言:javascript
运行
复制
location = / {
  auth_basic "Restricted";
  auth_basic_user_file htpasswd;
}  

使用Apache htpasswd utililty生成htpasswd文件。但是,在输入正确的用户名和密码后,我将转到403禁止错误页面。分析Nginx错误日志显示:

代码语言:javascript
运行
复制
directory index of "/var/www/mysite/public/" is forbidden, client: 108.14.212.10, server: mysite.com, request: "GET / HTTP/1.1", host: "mysite.com"

显然,我不想列出mysite/public目录的内容。如何正确配置它,以便在我输入登录信息后启动Rails应用程序?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-13 21:22:07

您需要在location块中重新指定passenger_enabled。

票数 17
EN

Stack Overflow用户

发布于 2010-11-13 17:40:02

你可以使用let Rails handle the authentication

代码语言:javascript
运行
复制
# application_controller.rb
before_filter :authenticate

protected

def authenticate
  authenticate_or_request_with_http_basic do |username, password|
    username == "foo" && password == "bar"
  end
end

此外,您应该在environment.rb中设置config.serve_static_assets = true (或在Rails3中设置applicaion.rb ),以便public中的静态资产通过相同的过滤器。

票数 6
EN

Stack Overflow用户

发布于 2010-11-13 15:54:50

检查你的Nginx错误日志。403意味着你把密码文件的路径弄错了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4171454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档