Rails Application on nginx http 和 https access 被拒绝



我正在使用Nginx在个人服务器上部署一个Rails应用程序,phusion_passenger。我有包含以下服务器块的站点配置文件。使用此配置,我的 http://192.168.1.121 服务不起作用,而https://192.168.1.121失败并出现禁止(拒绝访问)错误。

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        # Make site accessible from http://192.168.1.121/
        server_name 192.168.1.121;
        passenger_enabled on;
        rails_env production;
        root /home/deploy/www/myrailsapp/current/public;
        index index.html index.htm;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root html;
        }
} 
server {
       listen 443;
       server_name 192.168.1.121;
       passenger_enabled on;
       rails_env production;
       root /home/deploy/www/myrailsapp/current/public;
       index index.html index.htm;
       ssl on;
       ssl_certificate /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key /etc/nginx/ssl/nginx.key;
       ssl_session_timeout 5m;
       ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
       ssl_prefer_server_ciphers on;
       error_page 500 502 503 504 /50x.html;
       location / {
               try_files $uri $uri/ =404;
       }
}

生产.rb 有force_ssl:真
另外,如果我使用 https 条目删除服务器 {} 块,应用程序在 http 上运行得很好(当然我必须注释掉 force_ssl:true 来自 production.rb)。如果从https访问相同的目录,我对访问被拒绝错误感到非常困惑。
- nginx版本:nginx/1.6.2
- 导轨 4.0
- 红宝石 2.1.3
任何帮助,不胜感激。

尝试在与port 80配置相同的server块上配置 SSL。

此外,建议对 port 443 使用 listen 指令的 ssl 参数,而不是 ssl on 指令。

所以像这样:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    # Use ssl parameter on the listening socket instead of the 'ssl on' directive
    listen 443 ssl; 
    server_name 192.168.1.121;
    # Rest of your ssl configuration here
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;
    passenger_enabled on;
    rails_env production;
    root /home/deploy/www/myrailsapp/current/public;
    index index.html index.htm;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root html;
    }
} 

来源和推荐阅读:

  • 官方nginx文档 - 单个HTTP/HTTPS服务器
  • 数字海洋教程(可能对您的情况有帮助,也可能没有帮助)

相关内容

最新更新