Nginx:网站服务

nginx:一个高性能、轻量级的web服务软件

1、稳定性高(没有apache稳)

2、系统资源消耗低(处理http请求的并发能力很高,单台物理服务器可以处理3万到5万个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量的设置在2万个左右,占用内存2M左右

nginx的主要功能:

1、静态文件服务:nginx可以直接提供静态文件的服务HTML,CSS,JAVA,Script,图片等,能够高效的处理并且响应静态文件的请求

2、反向代理:可以作为反向代理的服务器,将客户端的请求转发给后端多个服务器,可以实现负载均衡和高可用,可以提高整个集群的性能以及可靠性

正向代理:已知后端服务器,请求只会往固定的的服务器发送请求 反向代理的核心:客户端在请求时,沟通代理服务器,会把请求的流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用Nginx:网站服务_第1张图片

3、处理动态内容,nginx处理动态内容很差,php node Java,nginx可以代理请求,发送到后端的动态服务处理,动态服务器处理完之后,nginx来把动态请求,响应给客户端

4、SSL/TLS加密,HTTPS的加密方式,数字证书验证机制

5、虚拟主机:nginx可以在一台服务器上设置多个虚拟主机,同一个服务器上可以有多个域名和站点

6、URL重定向,可以实现灵活的url重写和重定向

7、缓存功能,nginx自带缓存

8、日志功能,可以详细的记录请求的信息,包括访问的时间,请求路径IP地址,响应状态,有助于故障的排查(系统控制的日志,记录在/var/log/messages,业务日志:access.log error.log access记录的谁访问我了,都是访问成功的记录,error日志:也记录谁访问我了,但是记录的是访问失败的记录)

nginx的主要应用场景: 1、静态服务

2、反向代理,负载均衡

3、缓存服务

4、动态服务

面试题:nginx是如何实现高并发的? 1、nginx自身代码的问题:大量的底层代码进行了优化,同时自带了一个功能模块,epoll模块,支持高并发

2、nginx也是一个master进程控制多个work进程,master负责收集和分发请求,work是实际执行者,每一个请求进来时,master就会拉起一个work进程来处理请求,同时master进程也负责监控worker的状态,worker的数量和cpu要一直或者是cpu的2倍。worker处理请求的过程中,只受内存大小的限制,所以可以处理多个请求,再加上nginx本身就是轻量级的服务,处理请求时占用的内存本身就很少,所以可以起到大并发处理的能力 二者之间相互依赖,相互补充Nginx:网站服务_第2张图片

信号符: 信号符结合kill命令:

kill-usr1pid号 #日志分割

kill -s HUP pid号 #只要是kill,只能跟pid号

kill -s QUIT pid号 #优雅退出,有人访问时不会结束进程,访问结束,才会结束进程

kill -s WINCH pid号 #优雅的结束worker,直到请求完成,才会结束worker进程

必须要epel源 yum install -y epel-release yum install nginx -y

修改linux服务器文件的最大打开数量 ulimit -n 65535 #最大打开数量 注意:设置保存后,需要重新ssh连接才会看到配置更改的变化 vim /etc/security/limits.conf

65535 为Linux系统最大打开文件数

  • soft nproc 65535

  • hard nproc 65535

  • soft nofile 65535

  • hard nofile 65535

  • soft nproc 65535: 最大进程数软限制为 65535,即可以使用 ulimit -u 命令查看和修改的值。

  • hard nproc 65535: 最大进程数硬限制为 65535,即最大可分配的进程数。

  • soft nofile 65535:最大打开文件数软限制为 65535,即可以使用 ulimit -n 命令查看和修改的值。

  • hard nofile 65535:最大打开文件数硬限制为 65535,即最大可分配的文件数。

这里使用的通配符 * 表示对所有用户生效。

 Nginx:网站服务_第3张图片

全局块,全局生效,所有模块,所有用户都生效 events:影响nginx服务器和用户的网络连接问题 http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能时http的请求才可以写http模块中,upstream反向代理指定服务器的命令,在http模块中 serve块:包含在http模块中,不能单独设置 location块:匹配uri,包含在server当中的,也不能单独设置 porxy_pass反向代理 upstream:七层,基于IP和端口,走http协议,所以只能在http模块中 stream:四层,走的是tcp或者udp流量,不能写在HTTP当中,写在全局配置

你可能感兴趣的:(nginx,运维)