nginx

来源:互联网 发布:js length 对象 编辑:程序博客网 时间:2024/06/06 05:10
nginx介绍:
提供Web服务,提供http协议的服务。还有另外三个功能:
1.http的反向代理服务器(http reverse proxy)
2.邮件的反向代理服务器
3.tcp协议的数据转发(一般不称为代理,代理为七层模式)
nginx相对于apache的优点:静态页面的处理性能好,并发连接数可达到三万多
介绍关于http的MPM模式:
prefork进程模式,两级结构
worker线程模式,三级结构
event模式:主进程生成子进程,子进程响应请求
I/O模型:
有两种,网络I/O,磁盘I/O
网络I/O:I是用户发起请求从网络中读取数据,用到socket文件(相当于磁盘文件)(输入)
o是回应数据,写数据到socket文件(输出)
同步异步概念:消息通信机制
1.同步:调用者主动等待被调用者返回消息
2.异步:被调用者通知调用者运行状态
阻塞非阻塞:
1.阻塞:调用者等待过程中挂起,即不进行任何操作
2.非阻塞:调用者等待时进行其他操作
I/O的类型:
阻塞型(同步阻塞,同步非阻塞)、非阻塞型、复用型、信号驱动型、异步
数据包经过的端口可以判断出传向哪个程序,然后根据数据包头的method得知动作,像get,说明要下载文件。
PIO模式:CPU参与数据的转发(CPU较忙)
DMA模式:CPU只发出指令,不参与数据的转发
正向代理与反向代理
1.正向:客户端利用正向代理的缓存加速访问
2.反向代理:负载均衡(将用户的请求通过算法调度到后方的服务器)
http的反向代理可以识别http协议,可以根据特定数据进行转发,例如将图片数据转发到第一台服务器
nginx的反向代理可以检查后方服务器的健康状态
nginx的主机设置相同,虚拟主机不需要特殊代码段;可实现平滑升级,nginx是双层模式,分为主进程master和子进程work,当系统升级时只关闭主进程,将其进行升级,work子进程可以继续处理已连接的用户请求。

lnamp优点:nginx做反向代理服务器,可以将请求转发到其他服务器,实现动静分离(访问动态页面转发到php,访问静态页面转发到其他服务器)。但是会消耗socket(端口号),服务器收到的请求的发送者是反向代理服务器,因为nginx收到请求,会将数据包拆分,重新封装定义源地址
nginx的安装:通过yum安装,也可以进行编译安装。(光盘中没有)



安装时已经创建了帐号:

nginx是一个服务,可以直接启动(但与apache冲突,二者都用80端口),再启动apache就会出错,无法启动:



也可以直接启动:但是这种方式启动,无法用systemctl stop nginx停止

两个启动方式混用,会导致启动出故障,无法停止服务,只能进行killall:

配置文件的内容格式:指令+值(指令最后加分号)

nginx的配置文件的结构:分为四段,1.主配置 1.http(包括代理) 3.mail(邮件代理) 4.stream(TCP协议的数据转发调度)

子进程帐号默认是nginx,默认的组是与用户帐号名称一样;(主)进程编号的文件,服务开启存在,服务关闭不存在:

http配置段中,一个虚拟主机要写一个serve,有几个虚拟主机就写几个serve,通用的配置写在serve的外面:

隐藏软件的版本号:

nginx没有线程,需要一个进程响应多个用户的请求,work进程也可以指定具体数值,原则小于等于内核数。
绑定进程与CPU,查看进程在哪个CPU上工作:四个CPU都有

若进程没有绑定CPU,会涉及到进程切换(进程在CPU上有缓存数据,切换CPU会导致原来的缓存无法使用)
进程绑定CPU命令:工作在主配置段
worker_cpu_affinitycpumask...
CPU编号:
00000001:0号CPU
00000010:1号CPU
10000000:8号CPU
更改worker进程的优先级:工作在main主配置段

数值越大优先级越差,实际优先级的范围-20~19
event段可以设置的内容:
1.一个workers进程同时连接的最大用户量:

2.并发连接请求的处理方法:默认为epoll

3.处理新连接请求的方法:
accept_mutexon | off
on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on



原创粉丝点击