1.什么是nginx
Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
2.nginx的编译
在www.nginx.org中下载稳点版源码编译包
解压
# tar zxf nginx-1.18.0
没有安装gcc编译的先安装gcc编译器
编译过程
# ./configure --prefix=/usr/local/nginx --with-http_ssl_module
报错1
报错2
解决
# yum install -y pcre-devel 解决报错1
# yum install -y openssl-devel 解决报错2
预编译完成
执行编译
# make | make install
启动nginx 去访问默认配置页面
# cd /usr/local/sbin/
# ./nginx
3.nginx的版本更新(现在是1.18更新成旧版1.16)
进行更新时首先将二进制文件nginx备份,下载nginx源码包,解压,编译
将编译好的二进制nginx文件复制到/usr/loacl/nginx/sbin
# cp -f objs/nginx /usr/local/nginx/sbin/nginx 正在运行的话需要强行复制
# /usr/local/nginx/sbin/nginx -V 查看版本
ngnix进程启动启动后会有一个master进程和多个worker进程。
master进程的主要作用:
1.读取并验证配置信息;
2.创建,绑定及关闭套接字;
3.启动,终止worker进程以及维护worker进程的个数;
4.无须终止服务而重新配置工作。
5.控制非中断式程序升级,启用新的二进制程序并在需要的时回滚到老版本。
6.重新打开日志文件。
7.编译嵌入式perl脚本。
worker主要作用:
1.接收,传入并处理来自客户端的连接;
2.提供反向代理及过滤功能;
3.nginx任何能完成的其他任务
# kill -USR2 12391 不在接收进程
# kill -WINCH 16292 终止
使用备份二进制文件回到以前版本
# cd /usr/local/nginx/sbin/
# cp -f nginx.old nginx
# ./nginx -V 查看版本
4.nginx的日志切割
为防止日志过大我恶魔你通常使用日志切割的方式来方便管理
# cd /usr/loacal/nginx/log
# mv 2020-06-02_access_log `date +%F -d -1day`_access_log 每天凌晨执行保存前一天的日志
# ../ sbin/nginx 执行后会新生成access.log日志
5.nginx发布页面的gzip的压缩
编辑nginx的默认配置目录
# cd /usr/local/nginx/conf
# vim nginx.conf
# ../sbin/nginx -t 首先进行语法检测
# ../sbin/nginx -s reload 重新加载
6.nginx限制请求
限制连接数
# vim ../nginx/conf/nginx.conf 编辑默认发布目录
# cd /usr/local/nginx/html
# mkdir download (在目录中存放一张照片)
# cp /root/Desktop/vim.jpg .
# ./nginx -t 预编译
# ./nginx -s reload 重新加载
测试:
# ab -c 1 -n 10 http://172.2.111.13/download/vim.jpg
# ab -c 2 -n 10 http://172.2.111.13/download/vim.jpg
限制速率
# vim ../nginx/conf/nginx.conf
# ../nginx/sbin/nginx -t
# ../nginx/sbin/nginx -s reload
限制带宽
# vim ../nginx/conf/nginx.conf
# ../nginx/sbin/nginx -t
# ../nginx/sbin/nginx -s reload