所有HTTP方法都使用Nginx进行SSL终止

时间:2016-07-06 00:18:05

标签: http ssl nginx https

我正在尝试使用Nginx实现SSL终止。我需要通过https强制所有流量,所以我在我的Nginx配置中有这个规则:

if ($scheme = http) {
        rewrite     ^   https://$server_name$request_uri? permanent;
}

这适用于浏览器,也适用于直接使用https点击api。但是,如果我使用其他HTTP方法(POST,PUT等)通过http命中api,它会将它们视为GET方法。我理解这种情况正在发生,因为返回了301,但是我怎样才能为所有HTTP方法保持强制SSL行为?

1 个答案:

答案 0 :(得分:1)

解决!结果是HTTP代码307的行为与303完全相同,但不需要更改HTTP方法。返回该代码代替了解决问题:

return 307 https://$server_name$request_uri;
相关问题