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

问题描述 投票:0回答:2

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

我的目标是使用 http://... 或 https://... 时以透明方式调用

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

nginx - 启用站点/默认

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

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

在这种情况下,我尝试使用 307 和 308 但不起作用 当我的请求使用 POST 时,我看到 access.log、nginx 使用 GET 方法重定向 url

  • 我的nginx版本是1.18
  • 我的域名是在 cloudflare 中注册的...我怀疑这是否是问题所在
  • 重新启动服务并重新启动服务器....我也有同样的错误

请问有什么想法吗?

nginx http-redirect https webserver cloudflare
2个回答
2
投票

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

我在 cloudflare 中尝试了 diversitieds 配置...并且我检测到当菜单 SSL/TLS > Edge 证书中的“始终使用 HTTPS”字段处于活动状态时,他们修改了所有请求

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;
  }
.
.
.
}

#更新 05/07/2022

当我在其他服务器中激活 http/https 并且 domian 由 Cloudflare 管理时,我检测到其他相关问题

我需要激活“DNS 管理”中的“代理”检查,因为我在使用 vb.net 的应用程序中遇到问题


0
投票

对我来说,307临时重定向不是来自nginx,而是来自Apache Traffic Server的redirect_temporary指令,该指令用作代理主机。

在你的情况下,我会怀疑类似的情况,也许 307 来自 Cloudflare 而不是来自 nginx?您可以通过浏览器检查器检查响应并仔细检查响应,例如:建议使用 nginx 以外的其他服务器。

© www.soinside.com 2019 - 2024. All rights reserved.