![仅当我清除 NGINX 缓存时,“需要用户代理才能访问此页面”消息才会消失](https://linux22.com/image/773361/%E4%BB%85%E5%BD%93%E6%88%91%E6%B8%85%E9%99%A4%20NGINX%20%E7%BC%93%E5%AD%98%E6%97%B6%EF%BC%8C%E2%80%9C%E9%9C%80%E8%A6%81%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86%E6%89%8D%E8%83%BD%E8%AE%BF%E9%97%AE%E6%AD%A4%E9%A1%B5%E9%9D%A2%E2%80%9D%E6%B6%88%E6%81%AF%E6%89%8D%E4%BC%9A%E6%B6%88%E5%A4%B1.png)
我是 NGINX 新手,无法确定它或我们的应用程序是否存在问题。我的 PHP 应用程序有一个 php 包设备检测器它负责用户代理信息以及 CodeIgniter,它有一个文件 UserAgent.php。我曾经遇到过一个事件,大约有 30 人尝试访问它。他们登录后,上面的消息出现了,只有当我们清除 NGINX 缓存时,问题才消失。我们在测试服务器时尝试通过将 GET 切换到 POST 来复制此错误,但没有成功。我们使用 loader.io 来测试服务器访问,它运行良好(该服务器上的其他应用程序也是如此)。关于我们如何复制它以及问题是什么,有什么想法吗?谢谢
答案1
最有可能的是,您的应用程序编码不当,当它无法检测到“用户代理”时会阻止访问,但会返回带有错误消息的页面,其中包含正常的 HTTP 200 代码而不是 403。由于返回代码不表示任何错误,因此错误页面将被缓存并显示给所有访问者,直到清除缓存为止。