反向代理比原接口性能还低是怎么回事呢,能不能改善
location / {
#proxy_buffering off;
root html;
index index.html index.htm;
#proxy_buffers 8 4m;
#proxy_busy_buffers_size 25m;
#proxy_buffer_size 512k;
#proxy_ignore_headers “Cache-Control” “Expires”;
#proxy_max_temp_file_size 0;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_intercept_errors off;
proxy_pass http://api;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
proxy_set_header X-Forwarded-Proto https;
#proxy_set_header Forwarded “$proxy_add_forwarded;proto=$scheme”;
}
这样的,还有:
worker_rlimit_nofile 655350;
events {
worker_connections 5000000;
}
我测的是列表接口,从原接口用 jmeter 给 1000 个线程,原接口得到的吞吐量是 200 多个操作每秒,
但反向代理的接口只有 20 多不说,有 20%的请求返回的是 read timeout
接收数据量原接口是 6MB/s,反向代理出的接口是 500KB/s
测试的时候 nginx 那台机器的 cpu 和内存占用都没什么波动,所以机器性能不够应该不是主要原因
至于说为什么反向代理是因为 nginx 的这台机器才在公网上
反向代理没开缓存是因为这个是个 post 接口,客户端已经发出去了接口不会改为 get 了,并且这里会统计用户访问数所以也不好缓存
就想了解一下反向代理的接口能不能吞吐和原接口接近呢,有没有懂的说说