学习笔记(个人记录)

nginx学习笔记(一)—-关于nginx的性能优化

笔记用于记录一下nginx的学习,大部分都是转载网络上的知识,自己加以理解和整理。

 在工作中使用nginx-rtmp模块作为直播服务器,但是在部署应用过程中碰到了一些问题的,所以学习下nginx的性能优化,吸收下前辈们学习的经验。

1.nginx的异步非阻塞
今天看到一篇文章,讲的是 Nginx的异步非阻塞,正好项目中碰到点nginx的问题,先学习记录下,下面是文章的连接。

http://blog.csdn.net/dutsoft/article/details/55224755
配置是这样的:

events {
    worker_connections  1024;
    use kqueue;  # 在Linux中配置:use epoll;
}

意思是开启nginx的异步非阻塞工作方式,使用这种方式能轻松处理高并发的问题(此功能在windows下无法开启,识别不了两种方式,待研究)

2.设置nginx进程

worker_processes 3;

一般来说,服务器有几个逻辑cpu就设置几个进程,逻辑cpu就是我们通常说的几核
这里先记录下,测试ab -n 20000 -k http://www.1990y.com/p.php 还有加-c的问题(之后研究)

3.优化 Nginx 连接超时时间

https://www.cnblogs.com/pzk7788/p/6923614.html
(1) keepalive_timeout :该参数用于设置客户端连接保持会话的超时时间,超过这个时间服务器会关闭该连接
(2) client_header_timeout :该参数用于设置读取客户端请求头数据的超时时间,如果超时客户端还没有发送完整的 header 数据,服务器将返回 “Request time out (408)” 错误
(3) client_body_timeout :该参数用于设置读取客户端请求主体数据的超时时间,如果超时客户端还没有发送完整的主体数据,服务器将返回 “Request time out (408)” 错误
(4) send_timeout :用于指定响应客户端的超时时间,如果超过这个时间,客户端没有任何活动,Nginx 将会关闭连接
(5) tcp_nodelay :默认情况下当数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高 I/O 性能,但是,在每次只发送很少字节的业务场景中,使用 tcp_nodelay 功能,等待时间会比较长

这里还要考虑,nginx-rtmp模块可以用的设置

你可能感兴趣的:(流媒体,个人学习)