nginx
具体就是一个轻量级以及高性能的web服务软件。
nginx特点
1、稳定性高。(但不如apache)
2、系统资源消耗比较低。(处理http请求的并发能力较高,单台处理器可以处理3w-5w的并发请求)
注:一般在企业中,为了保存服务器稳定,并发量的设置一般在2w左右。
nginx的主要功能
1、静态文件服务。(nginx可以直接提供静态文件服务。能够高效处理并响应静态文件的请求。)
2、反向代理。(nginx本身可以作为一个反向代理的服务器。可以把客户端的请求转发给后端多个服务器,实现负载均衡,高可用。可以提高整个集群的性能。)
反向代理:客户端在请求时,沟通代理服务器,会把请求的流量按照轮询算法,转发到后台不同的服务器,实现高可用和负载均衡。
3、处理动态内容。(nginx处理动态内容很差,但它可以代理请求,发送到后端的动态服务处理,动态服务处理完后,由nginx把动态请求响应给客户端。)
4、可以实现SSL/TLS加密(https的加密方式数字证书验证机制)
5、虚拟主机。(nginx可以在一台服务器上设置多个虚拟主机,同一台服务器上可以有多个域名和站点。)
6、URL重定向。(可以实现灵活的URL重写和重定向。)
7、缓存功能。
8、日志功能。(可以详细的记录请求的信息,包括访问时间,请求路径,IP地址,响应状态。有助于故障排查。)
nginx的主要应用场景
1、静态服务
2、反向代理,负载均衡
3、缓存服务
4、动态服务
nginx是如何实现高并发的
1、nginx自身代码的问题,大量的底层代码进行了优化,同时自带 了一个功能模块,epoll模块,支持高并发。
2、nginx也是一个master进程控制多个work进程。master负责收集和分发请求,work是实际执行者 。work处理请求的过程中,只受内存大小的限制。所以可以处理多个请求,再加上nginx本身就是轻呈级的服务,所以可以起到大并发处理的能力。
nginx相关命令
nginx -t 检查配置文件是否正确
nginx -v 查看版本号
nginx -s 向主进程传输信号(停止,开启,重启,重加载)
nginx -c 设置配置文件的默认路径
信号符
kill -USR1 pid号(进程号) 日志分割
kill -s HUP pid号 重加载
killall -s HUP nginx
kill -s QUIT pid号 优雅退出(有人访问时不会结束进程,访问结束才会结束进程。)
kill -s WINCH pid号 优雅结束worker进程
nginx.conf配置文件
location块匹配的是uri
https://www.baidu.com/ky30
在com之后的ky30就是url
root 拼接 root指定的目录和location匹配的uri进行拼接,目录都要存在并且在url目录下要有web文件。可以使用重定向。
alias 匹配指定目录下的web文件。不能使用重定向。
全局块,全局生效,所有模块,所有用户都生效
events:影响nginx服务器和用户的网络连接问题
http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能是http的请求才可以写http模块中。
server块:设置虚拟主机, 包含在http模块当中,不能单独设置。
location块:匹配uri,包含在server当中的,也不能单独设置
修改Linux服务器文件最大打开数
临时修改:ulimit -n 65535
永久修改:/etc/security/linuits.conf soft
1 *soft nproc 65535 即可以使用ulimit -u 命令查看和修改的值。
1 *hard nproc 65535 即最大可分配的进程数。
1 *soft nofile 65535 即可以使用 ulimit -n 命令查看和修改的值。
1 *hard nofile 65535 即最大可分配的文件数。
注:65535 为Linux系统最大打开文件数,这里使用的通配符 * 表示对所有用户生效