nginx的基本设置

基本设置
client_body_buffer_size 512k;
设定客户端请求体的缓冲区大小为 512KB。

client_header_buffer_size 4k;
设置客户端请求头的缓冲区大小为 4KB。

client_max_body_size 1024M;
设定允许的最大请求体大小为 1024MB。

large_client_header_buffers 2 8k;
配置大请求头缓冲区,允许 2 个缓冲区,每个大小为 8KB。

代理设置
proxy_connect_timeout 5s;
代理连接超时时间设置为 5 秒。

proxy_send_timeout 120s;
代理发送超时时间设置为 120 秒。

proxy_read_timeout 120s;
代理读取超时时间设置为 120 秒。

proxy_buffer_size 16k;
设定单个代理缓冲区的大小为 16KB。

proxy_buffers 4 64k;
设置代理的缓冲区数量为 4,每个大小为 64KB。

proxy_busy_buffers_size 128k;
设置忙缓冲区的大小为 128KB。

proxy_temp_file_write_size 128k;
设置临时文件写入的大小为 128KB。

proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
在遇到 502、504、404 错误、超时或无效头信息时,尝试下一个上游服务器。

Gzip 压缩
gzip on;
启用 Gzip 压缩。

gzip_static on;
启用静态文件的 Gzip 压缩。

gzip_min_length 1000;
设置压缩的最小文件长度,低于该值的文件将不会被压缩。

gzip_buffers 4 16k;
设置用于 Gzip 压缩的缓冲区数量和大小。

gzip_comp_level 1;
设置 Gzip 压缩级别为 1(快速压缩,较低的压缩比)。

gzip_http_version 1.1;
设置使用 Gzip 的 HTTP 版本为 1.1。

gzip_vary on;
启用 Vary 响应头,以便代理服务器可以缓存不同的 Gzip 和非 Gzip 版本。

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
指定启用 Gzip 压缩的 MIME 类型。

gzip_disable “MSIE [1-6].”;
禁用 Gzip 压缩针对 Internet Explorer 6 及以下版本。

文件缓存
open_file_cache max=655350 inactive=20s;
最大打开文件缓存为 655350,且未被访问的文件在 20 秒后将被移除。

open_file_cache_valid 30s;
设定缓存的有效时间为 30 秒。

open_file_cache_min_uses 2;
文件至少被访问 2 次才会被缓存。

open_file_cache_errors on;
允许缓存错误文件信息。

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    # 提升文件传输性能
	sendfile on;

	# 提高网络包传输效率,相当于把多个包整合在一起一次性给客户端发送
	tcp_nopush on;

	# 实时性发送包
	tcp_nodelay on;

	server_names_hash_bucket_size 128;
	server_names_hash_max_size 512;
	keepalive_timeout 1000;
	client_header_timeout 15s;
	client_body_timeout 15s;
	send_timeout 60s;

	# 缓存
	proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=nginx-cache:20m max_size=10g inactive=168h use_temp_path=off;

	client_body_buffer_size 512k;
	client_header_buffer_size 4k;
	client_max_body_size 1024M;
	large_client_header_buffers 2 8k;

	proxy_connect_timeout 5s;
	proxy_send_timeout 120s;
	proxy_read_timeout 120s;

	proxy_buffer_size 16k;
	proxy_buffers 4 64k;
	proxy_busy_buffers_size 128k;
	proxy_temp_file_write_size 128k;
	proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;

	# 压缩传输
	gzip on;
	gzip_static on;
	gzip_min_length 1000;  # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
	gzip_buffers 4 16k;
	gzip_comp_level 1;
	gzip_http_version 1.1;
	gzip_vary on;
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
	gzip_disable "MSIE [1-6]\.";

	open_file_cache max=655350 inactive=20s;
	open_file_cache_valid 30s;
	open_file_cache_min_uses 2;
	open_file_cache_errors on;
    include /etc/nginx/conf.d/*.conf;
}
Nginx中处理大文件上传时,经常会遇到500 Internal Server Error的问题,这通常与文件上传相关的几个核心配置参数有关:`client_body_buffer_size`、`client_body_temp_path`和`client_max_body_size`。首先,`client_body_buffer_size`参数控制了Nginx在内存中为客户端请求体分配的缓冲区大小。如果上传的文件超过了这个缓冲区的大小Nginx会将超出的部分写入到`client_body_temp_path`指定的临时文件路径中。如果临时路径不存在或者权限设置不当,Nginx将无法处理上传的文件,导致500错误。 参考资源链接:[解决nginx上传文件500错误:配置调整与原因分析](https://wenku.csdn.net/doc/645204c1fcc53913680077ae?spm=1055.2569.3001.10343) 为了优化大文件上传并解决500错误,你需要按照以下步骤调整配置: 1. 增加`client_body_buffer_size`的值。根据服务器的内存容量和业务需求,合理设置该参数以减少大文件上传时的磁盘I/O操作,提升上传效率。但是,也要注意不要设置得过大,以免影响服务器的稳定性。 2. 确保`client_body_temp_path`指向的目录存在,并且Nginx运行用户有足够的权限来读写该目录。如果权限不足,你需要使用`chown`和`chmod`命令修改目录的用户和权限设置。 3. 调整`client_max_body_size`以允许上传最大文件的大小。这个参数应该根据实际业务场景来设置,如果设置太小,即使是小文件上传也会被限制。 在调整了这些参数之后,务必重启Nginx服务以使配置生效。可以通过命令`nginx -s reload`来完成重启。此外,监控日志文件和服务器性能也是必要的,以确保配置调整后的运行效果。 通过上述配置调整,可以显著提升Nginx在大文件上传时的处理能力,减少500错误的发生。如果你在配置过程中遇到其他问题,或者希望进一步提高上传效率,可以参考《解决nginx上传文件500错误:配置调整与原因分析》一文,它提供了详细的配置调整方法和原因分析,非常适合你在解决当前问题后继续深入学习和实践。 参考资源链接:[解决nginx上传文件500错误:配置调整与原因分析](https://wenku.csdn.net/doc/645204c1fcc53913680077ae?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

❀͜͡傀儡师

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值