作者:维他柠檬鱼1949 | 来源:互联网 | 2023-09-06 15:21
我步履蹒跚,这里确实需要一些帮助:
我有一个NGINX反向代理,它从上游CMS服务器提供内容。服务器配置为:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/example.com/fullchain.pem;
add_header Content-security-policy upgrade-insecure-requests;
location / {
proxy_pass http://10.0.0.1;
proxy_redirect http:// https://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
请求index.php上游发出几个重定向(302和307)-没问题:
2019-12-28T11:28:15.269832284Z 1.2.3.4 - - [28/Dec/2019:11:28:15 +0000] "GET / HTTP/1.1" 302 145 "-" "Mozilla/5.0" "-"
2019-12-28T11:28:15.494911686Z 1.2.3.4 - - [28/Dec/2019:11:28:15 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:28:15.698820671Z 1.2.3.4 - - [28/Dec/2019:11:28:15 +0000] "GET / HTTP/1.1" 307 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:28:15.765285132Z 1.2.3.4 - - [28/Dec/2019:11:28:15 +0000] "GET /frontpage/ HTTP/1.1" 200 5379 "-" "Mozilla/5.0" "-"
但是,如果我向NGINX添加缓存功能,它将在302循环中陷入困境。我不知道为什么。这是配置:
nginx.conf中的缓存路径:
proxy_cache_path /var/nginx-proxy-cache levels=1:2 keys_zOne=my-cache:5m max_size=10g inactive=1y use_temp_path=off;
服务器配置:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/example.com/fullchain.pem;
add_header Content-security-policy upgrade-insecure-requests;
# cache conf
proxy_cache my-cache;
proxy_cache_revalidate on;
proxy_cache_valid 5m;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_background_update on;
proxy_cache_lock on;
location / {
proxy_pass http://10.0.0.1;
proxy_redirect http:// https://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
再次请求index.php,它陷入一个无休止的循环,如下所示:
2019-12-28T11:13:26.193598796Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 145 "-" "Mozilla/5.0" "-"
2019-12-28T11:13:26.434423416Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:13:26.604074041Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:13:26.653580249Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:13:26.707631075Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
2019-12-28T11:13:26.759847610Z 1.2.3.4 - - [28/Dec/2019:11:13:26 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0" "-"
对此表示任何帮助,我们将不胜感激。谢谢!