一种比较激进的nginx下载配置:
server {
listen 80;
listen 443 ssl;
server_name woosync.net;
# SSL配置保持不变
ssl_certificate /ssl/woosync.net.pem;
ssl_certificate_key /ssl/woosync.net.key;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 启用sendfile优化
sendfile on;
sendfile_max_chunk 512k; # 限制单次sendfile调用的数据量
tcp_nopush on; # 优化网络传输
tcp_nodelay on; # 禁用Nagle算法,减少延迟
# 增加读取超时时间
proxy_connect_timeout 60;
proxy_send_timeout 600;
proxy_read_timeout 600;
keepalive_timeout 65;
# 增加buffer大小
proxy_buffer_size 128k;
proxy_buffers 8 256k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
# 启用异步IO和直接IO
aio threads;
directio 8m; # 大文件使用直接IO
directio_alignment 512;
location / {
proxy_pass http://127.0.0.1:9092;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 启用proxy缓冲
proxy_buffering on;
# 启用压缩
gzip on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types application/octet-stream
application/vnd.android.package-archive
application/zip;
gzip_vary on;
# 启用断点续传
if_range on;
add_header Accept-Ranges bytes;
}
location /static {
alias /var/www/enen/static;
# 静态文件缓存
expires 30d;
add_header Cache-Control "public, no-transform";
# 针对大文件的优化
aio threads;
directio 8m;
# 启用压缩
gzip on;
gzip_static on; # 如果有预压缩文件则直接使用
}
}
一种比较保守的nginx配置:
server {
listen 80;
listen 443 ssl;
server_name woosync.net;
# SSL配置保持不变
ssl_certificate /ssl/woosync.net.pem;
ssl_certificate_key /ssl/woosync.net.key;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 基础文件传输优化 - 这些是非常安全的配置
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# 适当的超时设置 - 这些值比较保守
proxy_connect_timeout 60;
proxy_send_timeout 300;
proxy_read_timeout 300;
keepalive_timeout 65;
# 适度的buffer配置 - 不会占用过多内存
proxy_buffer_size 64k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
location / {
proxy_pass http://127.0.0.1:9092;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 启用proxy缓冲
proxy_buffering on;
# 启用基础gzip压缩 - 使用保守的压缩级别
gzip on;
gzip_min_length 1000;
gzip_comp_level 4; # 降低到4,减少CPU使用
gzip_types application/octet-stream
application/vnd.android.package-archive;
# 启用断点续传
add_header Accept-Ranges bytes;
}
location /static {
alias /var/www/enen/static;
# 基础缓存配置
expires 7d;
add_header Cache-Control "public";
}
}