2017-03-22 68 views
2

我配置了env選項FORCE_HTTPS = true的建議在documentation如何強制HTTPS與Staticfile Buildpack(FORCE_HTTPS)瑞士電信公司的Cloud Foundry

我manifext.yml

env: 
    APP_ENV: production 
    FORCE_HTTPS: true 

然而,當我打開網站與http我不會重定向到https。

我使用自定義的文件nginx.conf

設置應用於

+0

你有一個自定義'nginx.conf'文件或者你使用的是默認的?環境變量是否真的被設置(可以用'cf env '驗證)?您使用的是哪個版本的staticfile buildpack? – mastertinner

+0

如果您使用'cf ssh '訪問容器並檢查生成的'nginx.conf',則可以驗證是否應用了該選項。 在容器中的'/ app/nginx/conf/nginx.conf'中找到配置。如果成功應用了'FORCE_HTTPS',則應該看到一行包含'if($ http_x_forwarded_proto!=「https」){'根據buildpack源代碼:https://github.com/cloudfoundry/staticfile-buildpack/blob/ 206728f929a69ed12570ee755b72e4cd5457745d/conf/nginx.conf#L50 –

+0

我已經使用Swisscom的應用雲上的演示應用測試了場景。 (只需發佈一個新的靜態託管應用程序,而無需通過門戶提供zip文件)。 http重定向爲我工作。您也可以通過控制檯檢查配置:'cf env {app-name}' – delixfe

回答

1

我添加下面一行到我的自定義「/nginx.conf」文件。

location/{ 
     <% if ENV["FORCE_HTTPS"] %> 
      if ($http_x_forwarded_proto != "https") { 
       return 301 https://$host$request_uri; 
      } 
     <% end %> 
     ... 
    }