热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

30/307混合中的NGINX缓存无限循环

我步履蹒跚,这里确实需要一些帮助:我有一个NGINX反向代理,它从上游CMS

我步履蹒跚,这里确实需要一些帮助:

我有一个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" "-"

对此表示任何帮助,我们将不胜感激。谢谢!





推荐阅读
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
author-avatar
维他柠檬鱼1949
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有