NginxHttpAuthBasicModule 与 Sinatra 和 Passenger

NginxHttpAuthBasicModule 与 Sinatra 和 Passenger

我正在使用 Nginx 从 Sinatra 应用程序提供静态页面。

我使用 NginxHttpAuthBasicModule 为网站上的一个页面实现了基本身份验证,身份验证成功,但 Nginx 无法解析链接。错误日志显示 -

2010/03/22 12:15:19 [error] 7143#0: *2902 open() "/home/me/live/mysite_home/public
/mypage" failed (2: No such file or directory), client: 82.71.18.122, server: mysite.com, 
request: "GET /mypage HTTP/1.1", host: "mysite.com"

实际文件位于:

 /home/me/live/mysite_home/live/mypage.erb

配置文件为:

server {
listen 80;
server_name mysite.com;
root /home/me/live/mysite_home/public;
passenger_enabled on;

  location /mypage  {
    auth_basic            "Restricted";
    auth_basic_user_file  htpasswd;
  }

}

server {
listen 443;
server_name mysite.com;
root /home/me/live/mysite_home/public;
passenger_enabled on;
ssl on;
ssl_certificate      /etc/nginx/conf/certs/server.crt;
ssl_certificate_key  /etc/nginx/conf/certs/server.key;
keepalive_timeout    70;

  location /mypage  {
    auth_basic            "Restricted";
    auth_basic_user_file  htpasswd;
  }
}

不确定这是 Sinatra、Passenger 还是 Nginx 的问题,或者我只是遗漏了什么东西。

答案1

只需添加

passenger_enabled on;

位置块内部

server {
listen 80;
server_name mysite.com;
root /home/me/live/mysite_home/public;
passenger_enabled on;

  location /mypage  {
    passenger_enabled on;
    auth_basic            "Restricted";
    auth_basic_user_file  htpasswd;
  }
}

哎呀!

答案2

实际文件位于:/home/me/live/mysite_home/live/mypage.erb

配置文件为:root /home/me/live/mysite_home/public;

配置文件在路径中提到了目录“public”。但实际文件路径并不包含该目录。这是拼写错误吗?

相关内容