使用nginx + unicorn的Rails 4应用程序上的force_ssl给出503(服务暂时不可用)错误

时间:2014-08-08 20:09:23

标签: ruby-on-rails ssl amazon-web-services nginx unicorn

我的设置:

  1. AWS上的Rails 4应用程序。
  2. 运行nginx +独角兽
  3. 我想通过https访问控制器中的所有操作。所以我做了以下事情:

    1. 将force_ssl添加到该控制器。
    2. 将密钥和证书scp到AWS主机上的/ etc / ssl /。此密钥/证书由AWS生成。将这两个文件的所有者更改为' deployer' (我认为这是运行nginx / unicorn的用户)。
    3. 在我的nginx.conf中添加了以下内容:
    4. 
          server {
            listen 443;
            ssl on;
            ssl_certificate /etc/ssl/cert.cer;
            ssl_certificate_key /etc/ssl/key.cer;
      
            root /path/to/public;
      
            location ^~ /assets/ {
              gzip_static on;
              expires max;
              add_header Cache-Control public;
            }
      
            try_files $uri/index.html $uri @unicorn;
            location @unicorn {
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto https;
              proxy_set_header Host $http_host;
              proxy_redirect off;
              proxy_pass http://unicorn;
            }
      
            error_page 500 502 503 504 /500.html;
            client_max_body_size 4G;
            keepalive_timeout 10;
      
          }
      
      

      这些说明大部分来自:http://seaneshbaugh.com/posts/configuring-nginx-and-unicorn-for-force_ssl

      现在,当我转到http://example.com/my_ssl_controller/action时,它会将我重定向到https://example.com/my_ssl_controller/action,然后呈现503"服务暂时不可用"错误。

      1. 我是否需要对AWS控制台中的框进行一些更改? (例如,打开端口443)。
      2. 在rails应用程序之外的主机上是否还有其他配置可以更改?
      3. 感谢您的帮助!

0 个答案:

没有答案