概述
一:什么是Nginx?
Nginx是一个高性能的Http反向代理web服务器;主要功能:反向代理;通过配置文件可以实现集群和负载均衡;静态资源虚拟化;
二:什么是反向代理?
正向代理:客户端请求目标服务器之间的一个代理服务器;请求会先经过代理服务器,然后再转发请求到目标服务器,或的内容后最后响应给客户端;
反向代理:用户请求目标服务器,由代理服务器决定访问哪个ip;
路由:
三:安装Nginx:
1.上传Nginx到Linux系统;
2.安装依赖环境:
1)安装gcc环境:
yum install gcc-c++
2)安装PCRE库,用于解压正则表达式:
yum install -y pcre pcre-devel
3)zlib压缩和解压依赖:
yum install -y zlib zlib-devel
4)SSL安全加密的套接字协议层,用于HTTP安全传输,也就https:
yum install -y openssl openssl-devel
3.解压nginx:
tar -zxvf nginx-1.20.2.tar.gz
4.编译之前,创建nginx临时目录,如果不创建,在启动nginx的全过程会报错:
mkdir /var/temp/nginx -p
5.创建makefile文件:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
•注:代表在命令行中换行,用于提高可读性
命令 解释
—prefix 指定nginx安装目录
-pid-path 指向nginx的pid
-lock-path 锁定安装文件,防止被 恶意篡改或误操作
-error-log 错误日志
-http-log-path http日志
-with- 启用gzip模块,在线实
http_gzip_static_module 时压缩输出数据流
-http-client-body-temp- 设定客户端请求的临时path 目录
-http-proxy-temp-path 设定http代理临时目录
-http-fastcgi-temp-path 设定fastcgi临时目录
-http-uwsgi-temp-path 设定uwsgi临时目录
-http-scgi-temp-path 设定scgi临时目录
6.make编译:make
7.安装: make install
8.进入sbin目录:
启动nginx: ./nginx
停止:./nginx -s stop
重新加载:./nginx -s reload
四:请求Nginx默认页面过程:
五: Nginx 进程模型:
master进程:主进程;(Nginx默认一个主进程,一个工作进程,Master是管理者,Worker是工作者)
worker进程:工作进程;
查询Nginx进程命令:ps -ef|grep nginx
可以修改worker进程数:在nginx.con配置文件中
六:Worker抢占机制:
七:Nginx事件处理:
为什么Nginx可以抗住高并发:
1)Worker抢占机制: 当一个master主进程监听到一个端口会,会产生一定数量的worker进程,这些worker会去accept锁中抢占客户端请求;
2)使用了epoll模型: 当一个worker进程接收到客户端的请求时发生阻塞现象,它会去进行下一个请求;
八. nginx.conf配置结构:
九.nginx 常用命令总结:
# 关闭nginx
./nginx -s stop
./nginx -s quit
# 检测配置文件
./nginx -t
# 查询当前nginx版本号
./nginx -v
十.nginx日志分割(手动):
1)创建一个shell可执行文件: cut_nginx_log.sh
#!/bin/bash
LOG_PATH="/var/log/nginx/"
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
PID=/var/run/nginx/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
#向Nginx主进程发送信息,用于重新打开日志文件
kill -USR1 `cat $PID`
2)设置可执行权限:
chmod +x cut_nginx_log.sh
chmod -R 777 *
3)测试启动:
./cut_nginx_log.sh
十一:nginx日志切割(自动)
1) 安装定时任务:
yum install crontabs
2) 编辑并添加一行新的任务:
*/1****/usr/local/nginx/sbin/cut_nginx_log.sh
3)重启定时任务:
service crond restart
4)常用定时任务命令:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
crontab -e //编辑任务
crontab -l //查看任务管理
5)常用定时表达式总结:
// 每分钟执行一次
*/1 * * * (
// 每日凌晨(每天晚上23:59)执行
59 23 * * *
// 每日凌晨1点执行
0 1 * * *
最后
以上就是勤劳犀牛为你收集整理的Nginx核心知识总结的全部内容,希望文章能够帮你解决Nginx核心知识总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复