Nginx:网站服务

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

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

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

nginx的主要功能:

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

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

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

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本身就是轻量级的服务,处理请求时占用的内存本身就很少,所以可以起到大并发处理的能力 二者之间相互依赖,相互补充

信号符: 信号符结合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,即最大可分配的文件数。

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

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

相关推荐
眠修2 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
好奇的菜鸟1 小时前
Docker 配置项详解与示例
运维·docker·容器
xcs194051 小时前
集运维 麒麟桌面版v10 sp1 2403 aarch64 离线java开发环境自动化安装
运维·自动化
BAOYUCompany1 小时前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
超龄超能程序猿2 小时前
Bitvisse SSH Client 安装配置文档
运维·ssh·github
奈斯ing2 小时前
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
运维·redis·缓存·数据库架构
鳄鱼皮坡3 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
即将头秃的程序媛3 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
小Mie不吃饭3 小时前
FastAPI 小白教程:从入门级到实战(源码教程)
运维·服务器
fo安方4 小时前
运维的利器–监控–zabbix–第三步:配置zabbix–中间件–Tomcat–步骤+验证
运维·中间件·zabbix