目录
Nginx的优缺点
Nginx的组成部分
Nginx的配置语法
Nginx的命令
热部署
Nginx的优缺点
Nginx主要有5个优点
- 高并发,高性能:从数据上看32核64G的服务器可以轻松达到数千万的并发链接
- 可扩展性好:模块化设计稳定,导致第三方模块生态圈非常的丰富
- 高可靠性:可以持续不间断的在Web服务器上运行数年,
- 热部署:在不停止服务的情况下,升级Nginx
- Nginx 开源且免费,在特定情况下可以去修改Nginx的源代码
缺点就是开发Nginx模块所需要的技术要求比较高
Nginx的组成部分
它有4个主要的组成部分
- Nginx二进制可执行文件:这是由各模块源码编译出来的一个文件
- Nginx.conf的配置文件:它可以控制Nginx的行为
- access.log访问日志:记录每一条http请求
- error.log错误日志:定位问题
用汽车来类比,它的二进制可执行文件就相当于一个汽车本体,配置文件就相当于驾驶员控制汽车的行为,它的access.log访问日志就相当于一个GPS轨迹记录,用来记录汽车行驶过的轨迹,最后error.log就相当于汽车的黑匣子,当发生事故的时候,可以通过黑匣子来判断这是汽车本身故障还是驾驶员的失误。
Nginx的配置语法
- 配置文件由指令和指令块构成
- 每条指令以 ; 结尾,指令与参数之间用空格隔开
- 指令块以{}将多条指令组织在一起
- include语句允许组合多个配置文件以提升可维护性
- 使用 # 添加注释
- 使用$使用变量
- 部分指令参数支持正则
- 配置参数:
- 时间单位有ms,s,m,h,d,w,M,y。它们分别代表着毫秒、秒、分钟、小时、天、周、月、年。
- 空间单位:不加表示字节、加了k/K表示千字节、加了m/M表示兆字节、加了g/G表示G字节。
http配置的指令块:http、server、location、upstream。
- http这个模块表示所有的指令都由Http去解析,
- upstream这个模块表示 当我们与其他服务进行交互的时候可以定义一个upstream
- server对应一个域名
- location 表示URL表达式
Nginx的命令
- -? -h 帮助
- -c 使用指定的配置文件
- -g 指定配置指令
- -p 制定运行目录
- -s 发送信号
- 立刻停止服务 stop
- 优雅的停止服务 quit
- 重载配置文件 reload
- 重新开始记录日志文件 reopen
- -t -T 测试配置文件是否有语法错误
- -v -V 打印Nginx的版本信息、编译信息
热部署
当Nginx在运行的时候,如果要升级Nginx的话。需要先把旧的备份
cp nginx nginx.old
然后把已经编译好的最新版本的Nginx的二进制文件 copy到目录中,替换掉正在运行的Nginx文件
向Nginx进程发送USR2信号
kill -USR2 28109
接下来再查看,发现新老的master与worker都在运行
再向旧的Nginx进程发送
kill -WINCH 28109
表示优雅的关闭你的所有worker进程
这时候老的master不会自动被删除的,会留在这里,让你可以做版本回退。
日志切割
../sbin/nginx/ -s reopen