使用opsworks nginx和ELB终止SSL时强制使用HTTPS

前端之家收集整理的这篇文章主要介绍了使用opsworks nginx和ELB终止SSL时强制使用HTTPS 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用通过Unicorn / Nginx图层提供服务的Rails应用程序的Opsworks标准设置/食谱. SSL在Elastic Load Balancer处终止-因此从ELB到rails应用程序的流量始终为http.到现在为止还挺好.我想将http://domain.com的任何请求重定向https://domain.com

ELB有两个侦听器-一个带有端口80,另一个是443.

我知道,如果我正在运行自己的Nginx,则可以设置重定向规则…但是,如果可能的话,我希望保留在opsworks的处理方式中.

最佳答案
我认为在OpsWorks中执行此操作的唯一方法是创建自定义配方,以修改/ etc / Nginx / sites-available /#{application}.在您的自定义食谱中:

somecookbook / recipes / Nginx.rb

node[:deploy].each do |application,deploy| 

      service "Nginx" do
        supports :status => true
        action :nothing
      end

      # Add HTTP => HTTPS redirect      
      template "/tmp/http_redirect.conf" do
        source "Nginx/http_redirect.conf.erb"
      end

      execute "redirect HTTP to HTTPS" do
        cwd "/etc/Nginx/sites-available"
        command "cat #{application} /tmp/http_redirect.conf > /tmp/#{application}.conf && cat /tmp/#{application}.conf > #{application}"
        notifies :restart,"service[Nginx]",:immediately
      end                                      
  end    
end

然后在配置中:

somecookbook / templates / default / Nginx / http_redirect.conf.erb

server {
    listen       80;
    rewrite ^(.*) https://$host$1 permanent;
}

猜你在找的Nginx相关文章