nginx

nginx:

  • 高性能、轻量级的web服务软件。

nginx特点:

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

  2. 系统资源消耗较低 ( 处理http请求的并发能力很高 单台服务器可以处理3-5万)

也追求稳定: 一般在企业中,为了保持服务器稳定,并发量的设置在2万个左右,占用内存2M左右,加上keep-alive状态也就3M左右

nginx的主要功能:

1、静态文件服务 :

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

2 、反向代理 :

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

       正向代理 : 已知后端服务器,请求只会往固定的服务器发送请求

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

3、处理动态内容 :

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

4、SSLTLS加密 :

    HTTPS的加密方式,数字证书验证机制 

5、虚拟主机 :

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

6、URL重定向 :

     可以实现灵活的url重写和重定向

7、缓存功能 :

     nginx自带缓存功能

8、日志功能 :

      可以详细的记录请求的信息,包括访问时间,请求路径 ip地址,响应状态,有注意故障排查。

      ( 系统控制的日志,记录在/ar/log/messages

      业务日志分为两种

      access.log :记录的谁访问我了,都是访问成功的记录,

      error.log :也记录谁访问了我,但是记录的是访问失败的记录 )

nginx的主要应用场景:

  • 静态服务

  • 反向代理,负载均衡

  • 缓存服务

  • 动态服务

nginx是如何实现高并发的?

  1. nginx自身代码的问题: 大量的底层代理进行了优化,同时自带了一个功能模块。epll模块,支持高并发。
  2. nginx也是一个master进程控制多个work进程,master负责收集和分发请求,work是实际执行者。每一个请求进来,master就会拉起一个work进程处理请求。同时master进程也负责监控worker的状态,worker的数量和pu要一致或者是cpu的2倍。worker处理洁求的过程中,只受内存大小的限制,所以可以处理多个请求,再加上nginx本身就是轻量级的服务,处理洁求时占用的内存本身就很少,所以可以起到大并发处理的能力。二者之间相互依赖,相互补充

常用选项 :

  • nginx -t :检查配置文件是否配查正确。

  • nginx -v :查看nginx的版本号

  • nginx -s :向主进程传输信号,停止、开启、重启、重新、加载

  • nginx -c :设置配置文件的默认路径

nginx常用信号符: 结合kill命令

  • kill -USR1 pid号 (nginx服务的pid号) : 日志分割
  • kill -s HUP pid号 : 重新加载
  • kill -s QUIT pid号 :优雅退出,有人访问时不会结束进程,访问完了,才会结束进程。
  • kill -s WINCH pid号 :优雅的结束worker,直到请求完成,才会结束worker进程
  • killall -s HUP nginx     killall可以跟服务名,也可以用pid号, kill只能跟pid号

修改linux服务器文件的最大打开数量

临时修改 :

ulimit -n 65535

永久修改 :

    vim /etc/security/limits.conf
尾行进行添加:
  * soft nproc 65535      #最大进程数软连接
  * hard nproc 65535      #最大进程数硬链接
  * soft nofile 65535     #最大打开文件数软连接
  * hard nofile 65535     #最大打开文件数硬链接

注 :65535 是Linux系统最大打开文件数量

nginx.conf文件配置内容注意事项 :

  • 全局块 :全局生效,所有模块,所有用户都牛效

  • events块 : 影响nginx服务器和用户的网络连接问题

  • http块:主要模块,配置代理,缓存,虚拟丰机,方向代理,只能品http的请求才可以写http楼块中。

               upstream  :反向代理指定服务器的命令,只能写在http块中

                upstream :七层,基于ip和端口,走http协议,所以只能在http模块中

                    stream :四层,走的是tcp或者udp流量,不能写在http当中,写在全局配置

  • server块 :包含在http模块当中,不能单独设置

  • location块 :配uri,包含在server当中的,也不能单独设置

          porxy pass :反向代理

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