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
00000010:1号CPU
10000000:8号CPU
更改worker进程的优先级:工作在main主配置段
数值越大优先级越差,实际优先级的范围-20~19
event段可以设置的内容:
1.一个workers进程同时连接的最大用户量:
2.并发连接请求的处理方法:默认为epoll
3.处理新连接请求的方法:
accept_mutexon | off
on指由各个worker轮流处理新请求,Off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能,默认on
阅读全文
0 0
- nginx
- Nginx
- Nginx
- Nginx
- Nginx
- nginx
- nginx
- nginx
- nginx
- nginx
- nginx
- nginx
- nginx
- Nginx
- nginx
- nginx
- nginx
- nginx
- [安卓]Android Studio 3.0 JDK安卓环境配置(2017.10)
- jQuery初试弹窗-low
- 【perl】学习笔记(八)--复杂数据结构
- 三子棋简单实现
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结
- nginx
- Jzoj4831 方程式
- HttpServletResponse
- Tslib和Qt 4.8.4与在开发板上的移植
- ls -l 、 du、 df 的区别
- Oracle之复杂查询
- 高并发分布式系统中生成全局唯一订单号
- 解释器工作原理
- 从面试题看问题之JVM和内存