微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NGINX与OpenResty缓存性能

如何解决NGINX与OpenResty缓存性能

我配置了一个简单的Nginx代理,并进行了一些简单的缓存,在OpenResty和普通的Nginx中,它的性能表现异常。

负载测试(300rpm)下,香草Nginx可以正常工作,但是当我从Nginx切换到OpenResty时,我收到了一部分请求,这些请求突然挂起,没有响应,需要20秒钟以上的时间才能返回

我的Nginx.conf如下所示:

events {
    worker_connections  1024;
}

http {
    proxy_cache_path /var/cache keys_zone=pagecache:10m;

    server {
        listen 80;

        location / {
            return 301 https://$host$request_uri;
        }
    }

    server {
        listen 443 ssl;

        ssl_certificate /etc/ssl/mycert.pem;
        ssl_certificate_key /etc/ssl/mycert.key;

        location / {
            proxy_cache pagecache;
            proxy_cache_key $host$request_uri;
            proxy_cache_lock on;

            proxy_pass http://ssl-proxy-test.s3-website-eu-west-1.amazonaws.com/;

            add_header X-Cache-Status $upstream_cache_status;
        }
    }
}

我的Nginx Dockerfile如下:

FROM Nginx

copY certificates /etc/ssl
copY Nginx.conf /etc/Nginx/Nginx.conf

对于OpenResty,它看起来像这样:

FROM openresty/openresty:buster

copY certificates /etc/ssl
copY Nginx.conf /usr/local/openresty/Nginx/conf/Nginx.conf

我已经在多个OpenResty版本(克星,仿生,氙气)上进行了尝试,并在每个版本上获得了相同的结果。

但是,缓慢的请求确实会返回304,并带有Cache-Status:HIT标头,并且似乎无法传递到上游服务器,这使我认为瓶颈必须在从内存/磁盘读取缓存的数据时出现?而不是来自上游。

我是OpenResty的新手,所以不确定在缓存性能方面与普通Nginx有什么不同。

关于从哪里开始调试的任何建议?还是可能是什么原因?

解决方法

在一些不同的基础架构上进行负载测试后,我发现此问题似乎仅在AWS Elastic Container Service上出现。

切换到基于Centos / Amazon Linux的Docker映像似乎可以使工作更加一致。

仍然不确定真正的原因,但至少有一些有用的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。