这与此question有关。我发现,当我在YII上检查HTTPRequest时,Yii::app()->request
使用file_get_contents('php://input')
或$HTTP_RAW_POST_DATA
来从前端获取请求。当SSL禁用但启用后,此数据将消失。我看到了类似的question,但没有具体的解决方案,尽管有一个答案不鼓励在将http强制为https时使用302重定向。我需要在我的api服务器上使用此机制来将http重定向到https。如何在不丢失发布数据的情况下将http重定向到https?在此link上可以找到我的Nginx配置。
我希望这一问题能得到彻底解决,因为我已经花了一个多星期的时间解决了这个问题。
答案 0 :(得分:0)
如果要将HTTP重定向到https,则必须更新nginx conf文件。
Nginx应该收听http:
server {
listen 80;
server_name api.test.com;
return 301 https://api.test.com$request_uri;
}
server {
listen 443 ssl http2;
server_name api.test.com;
root /var/apps/myapp/current/workspace/api;
...
http2
是可选的