307 临时重定向不起作用 nginx 1.18

307 Temporary Redirect not work nginx 1.18

我部署了 apirest,其他服务需要它登录....最后几天工作正常,因为我确实使用了 http,今天安装 https,所有请求 post/get 使用 https 工作正常,但我尝试调用相同的端点重定向无效。

我的 objective 使用 http://.... 或 https://... 时调用透明方式

我研究了这个案例,所有人都在谈论 307/308 但对我不起作用

nginx - sites-enabled/default

server {
 listen 80;
 listen [::]:80;

 server_name mydomain.com;     
 return 307 https://$server_name$request_uri;
}

在这种情况下,我尝试使用 307 和 308,但没有用 当我的请求是 POST

时,我看到 access.log、nginx 使用 GET 方法重定向 url

有什么想法吗?

我可以解决这个问题....

我在 cloudflare 中尝试了 diversitieds 配置...我检测到当字段 Always Use HTTPS 处于活动状态时,他们修改了所有请求,在菜单 SSL/TLS > Edge Certificate

Always Use HTTPS
Redirect all requests with scheme “http” to “https”. This applies to all http requests to the zone.

并且只取消了这个选项

此外,我确认 return 308 在这个配置下工作正常:

server {
  listen 80; ssl off;
  listen 443 ssl;
  listen [::]:443 ssl;
  include snippets/self-signed.conf;
  include snippets/ssl-params.conf;

  root /var/www/public;

  index index.php index.html index.htm index.nginx-debian.html;

  server_name api.mydomain.com;

  location = /favicon.ico { access_log off; log_not_found off; }
  location = /robots.txt  { access_log off; log_not_found off; }
  location / {
    if ($scheme = "http") {            
        return 308 https://$server_name$request_uri;
    }
    autoindex on;
    try_files $uri $uri/ /index.php?$args;
  }
.
.
.
}