我部署了 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
请问有什么想法吗?
我可以解决这个问题....
我在 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 的应用程序中遇到问题
对我来说,307临时重定向不是来自nginx,而是来自Apache Traffic Server的redirect_temporary指令,该指令用作代理主机。
在你的情况下,我会怀疑类似的情况,也许 307 来自 Cloudflare 而不是来自 nginx?您可以通过浏览器检查器检查响应并仔细检查响应,例如:建议使用 nginx 以外的其他服务器。