前言:
眼前各位老铁们对“nginx配置文件优化”都比较讲究,朋友们都需要知道一些“nginx配置文件优化”的相关资讯。那么小编也在网摘上汇集了一些有关“nginx配置文件优化””的相关知识,希望兄弟们能喜欢,我们一起来学习一下吧!一、连接数优化
当Nginx作为负载均衡服务器时,能够接收的并发连接应该越多越好,为了测试服务器的并发能力,可以利用Apache中提供的ApacheBench工具,该工具可以在一台计算机中向一个url地址发送大量的并发请求,检查服务器响应这些请求耗时,有多少请求处理失败,利用工具可以模拟一台服务器被大量客户端并发连接的情况,以测试服务器并发能力。
进入apache安装目录:
执行命令:./ab -n10 -c2 ,注意ip后面有/;
从上述测试报告可以看出,服务器能承受500个并发连接,总共耗时0.085秒;
连接数设置到1500时,可以看出如上问题。
该提示表示打开的文件超出了系统限制,通过ulimit -a可以查看当前系统的限制:
从结果可以看出当前对于文件打开数量(open file)的限制为1024,使用命令:ulimit -n 65500命令可以临时更改这个数量;
若要每次开机后自动修改,可以将命令写入/etc/profile文件中。
重新请求结果如下:
优化Nginx连接数
为了使Nginx能够承受更高的并发数,可以编辑conf/nginx.conf配置文件进行配置,具体如下:
上述配置中:
worker_processes指令用于指定工作进程的个数,设置为auto时Nginx将根据cpu的核心数来控制;
worker_rlimit_nofile用于设置最多打开的文件数量;
worker_connections用于设置每个工作进程可以接收的连接数;
multi_accept表示是否允许一个工作进程响应多个请求;
Nginx支持select,poll,kqueue,epoll等多种类型的连接处理方式,在默认情况下会自动选择最适合系统的方式;
将错误日志级别设置为info时,可以查看当前Nginx使用的方式
重启并发请求可以看出Nginx完成了并发测试,没有出现失败的请求;
二、客户端请求限制
限制同一个IP的并发数
通过limit_conn指令可以限制并发连接数,在conf/nginx.conf配置文件中进行如下配置:
limit_conn_zone指令用于开辟一个共享内存空间保存客户端IP,空间名称为perip,
空间大小为10M,limit_conn指令用于限制连接数量;
预定义变量$binary_remote_addr保存了用二进制表示的当前客户端IP地址。
配置生效之后,Nginx将对于同一个IP地址允许10个并发连接,当超过时返回503错误,
另外limit_conn指令也可以在server和location块中使用,用于实现不同级别的控制。
限制虚拟主机的并发数
限制响应的传输速度
三、浏览器缓存优化
在server模块通过expires指令为静态资源设置过期时间,将图片,swf文件设置为30天后过期,将css,js文件设置为12个小时后过期。
另外即使服务器没有设置Expires,浏览器也会基于常见的静态资源扩展名自动缓存。
标签: #nginx配置文件优化