文章摘要
GPT
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉

问题描述

在使用 Nginx 配置强制跳转 HTTPS 后,结合 Cloudflare 的 CDN 服务,可能会遇到 ERR_TOO_MANY_REDIRECTS 错误,即 301 重定向次数过多。

问题原因

Cloudflare 的 CDN 服务会自动将 HTTP 请求重定向到 HTTPS,这可能导致多次重定向循环。

解决方案

以下是优化后的 Nginx 配置,确保 HTTP 请求正确重定向到 HTTPS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# HTTP 80 端口
server {
listen 80;
server_name example.com;
root /usr/share/nginx/html;
index index.html;

# 强制跳转 HTTPS
location / {
return 301 https://$server_name$request_uri;
}
}

# HTTPS 443 端口
server {
listen 443 ssl;
server_name example.com;
root /usr/share/nginx/html;
index index.html;

# SSL 配置
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

location / {
# 服务所在端口
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}