为所有用户缓存经过身份验证的请求
我正在开发一个Web应用程序,该应用程序必须处理需要授权的并发用户的巨大冲动,以请求相同的内容。在当前状态下,它甚至完全破坏了32核AWS实例。 (请注意,我们使用Nginx作为反向代理) 无法简单地缓存响应,因为在最坏的情况下,我们必须通过解码JWT来检查用户是否已通过身份验证。这要求我们启动Laravel 4 ,即使启用了PHP-FPM和OpCache ,它也很慢。这主要是由于繁重的自举阶段。 可能会问一个问题:“如果您知道这将成为一个问题,为什么首先要使用PHP和Laravel?” -但是现在再来做这个决定为时已晚! 可能的解决方案 提出的一种解决方案是将Auth模块从Laravel提取到一个轻量级的外部模块(以类似于C的方式编写),其职责是解码JWT并确定用户是否通过身份验证。 请求的流程为: 检查缓存是否命中(如果没有正常传递给PHP) 解码令牌 检查是否有效 如果有效,则从缓存中投放 如果无效,请告诉Nginx,然后Nginx将把请求传递给PHP进行正常处理。 一旦我们向单个用户提供了此请求,这将使我们不再打PHP,而是接触到轻量级模块来解决解码JWT以及此类auth附带的其他注意事项。 我什至在考虑直接将此代码作为Nginx HTTP扩展模块编写。 顾虑 我担心的是,我从未见过这样的事情,并且想知道是否有更好的方法。 同样,第二次您将任何用户特定的内容添加到页面,它完全杀死了该方法。 Nginx中是否可以直接使用另一种更简单的解决方案?还是我们必须使用像Varnish这样的更专业的东西? 我的问题: 上述解决方案有意义吗? 通常如何处理? 有没有更好的方法来实现类似或更好的性能提升?