我有 7 个 nginx 网络服务器运行一个 python 应用程序并通过 uwsgi 和一个套接字文件将其提供给 nginx,在这 7 个网络服务器前面有一个 nginx 负载均衡器,从负载均衡器向公众发出的流量被正确压缩,导致只有~20Mbps的传出流量,但是由于某种原因从网络服务器和负载均衡器出来的流量没有被压缩,导致负载均衡器的总传入流量(来自服务器子网接口)为400Mbps,每个Web 服务器可以承受大约 70Mbps 的传出流量。
是否应该像在 laod 平衡器上启用 gzip 压缩一样启用它(它在哪里工作)?这里有一些不同的配置吗?
网络服务器 nginx.conf:
user xxx;
worker_rlimit_nofile 99999;
worker_processes 16;
events {
worker_connections 65535;
}
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;
proxy_temp_path /tmp;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 620;
keepalive_requests 20000;
# types_hash_max_size 2048;
client_max_body_size 200m;
include /etc/nginx/mime.types;
default_type application/octet-stream;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_prefer_server_ciphers on;
proxy_buffer_size 128k;
proxy_buffers 16 256k;
proxy_busy_buffers_size 256k;
uwsgi_buffer_size 128k;
uwsgi_buffers 16 256k;
uwsgi_busy_buffers_size 256k;
# uwsgi_param UWSGI_SCHEME https;
# uwsgi_param HTTPS on;
#log info
log_format main '[$time_local] - $remote_addr - $request_time - $remote_user - $upstream_addr - "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $http_host $http_cookie';
log_format body '[$time_local] - $remote_addr - $request_time - $remote_user - "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $http_host $request_body $http_cookie';
access_log off;
#access_log /home/xxx/log/ng_access.log;
error_log /home/xxx/log/ng_error.log;
gzip on;
gzip_disable "msie6";
gzip_comp_level 4;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
open_file_cache max=8000 inactive=60s;
open_file_cache_valid 120s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
#uwsgi_buffering off;
#the cdn server, listening on port 83
include /etc/nginx/conf.d/cdn.conf;
#the xxx app, listening on port 81
include /etc/nginx/conf.d/xxx.conf;
#the dealers app, listening on port 82
include /etc/nginx/conf.d/dealers.conf;
#a fallback server listening on port 80, it acts as a local "load balancer" in case that we need to use this server without
#a load balancer
include /etc/nginx/conflb.d/http_upstreams.conf;
include /etc/nginx/conflb.d/xxx.conf;
include /etc/nginx/conflb.d/dealers.conf;
include /etc/nginx/conflb.d/es.conf;
include /etc/nginx/conflb.d/db.conf;
}
负载均衡器 nginx.conf:
user nginx;
worker_rlimit_nofile 99999;
worker_processes 15;
pid /run/nginx.pid;
events {
worker_connections 65535;
}
http {
include /etc/nginx/conf.d/http_upstreams.conf;
sendfile on;
proxy_busy_buffers_size 128k;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
#proxy_max_temp_file_size 0;
keepalive_timeout 620;
gzip on;
gzip_comp_level 4;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
include mime.types;
default_type application/octet-stream;
client_max_body_size 200m;
#log info
log_format main '[$time_local] - $remote_addr - $request_time - $remote_user - $upstream_addr - "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $http_host $http_cookie';
log_format body '[$time_local] - $remote_addr - $request_time - $remote_user - "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $http_host $request_body $http_cookie';
access_log /var/log/nginx/access.log main;
real_ip_header CF-Connecting-IP;
include /etc/nginx/conf.d/db1.conf;
include /etc/nginx/conf.d/db2.conf;
include /etc/nginx/conf.d/es.conf;
include /etc/nginx/conf.d/st.conf;
include /etc/nginx/conf.d/xxx.conf;
include /etc/nginx/conf.d/dealers.conf;
#catch all server
server {
listen 80 default_server;
rewrite ^(.*) http://www.xxx.gr$1 permanent;
}
}
嘿,伙计,像这样使用 gzip 压缩