龙空技术网

18、Nginx-配置优化

猿码笔记 3111

前言:

眼前各位老铁们对“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配置文件优化