1.异步非阻塞的高性能IO模型,任你有N个请求来临,Nginx都临危不惧
2.现在自动生成nginx复杂配置文件:
https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN
3.nginx的运行架构
nginx运行后,有多少个干活的工人,多进程,调用多个CPU去解析用户的请求
4.关于nginx的优化设置,nginx默认应该启动多少个进程去工作呢?
默认就是根据CPU的核数去设置进程即可
5.master进程,管理Nginx数据,创建worker工作进程
检查nginx.conf是否正确,语法错误
kill -9 nginx_pid肯定是master的pid
worker进程的作用:
master进程:
包工头进程,管理nginx数据,创建worker进程
利用nginx -v 可以看到当前操作的这个命令二进制命令,详细的信息,包括支持的模块
**
rpm 安装
yum 安装:
阿里云第三方仓库-----不是太靠谱
自建yum仓库
nginx官方仓库----安全性较高
yum 安装
1.配置yum源
2.清空yum源 yum clean all
yum install nginx -y
3.查看变量
which nginx
nginx -V
nginx 配置文件详解:
nginx 管理命令:nginx -t 检测Nginx.conf语法
nginx -s 重新读取nginx.conf
nginx -s stop 停止nginx kill -15 nginx
#通过yum 安装的nginx 请你用systemctl 去管理
#nginx -s reload worker进程会发生什么?
nginx -s reload 是给master进程发信号,重新读取配置信息,导致worker重新生成,因此
worker-pid发生了变化,到那时master进程id不带变化。
只有restart的时候,master进程才会变化。
通过进程id号去判断进程的启动方式,master是1号进程创建的,worker进程是nginx master创建的
想通过systemctl 去管理Nginx服务,master进程就得被systemd这个进程去管理。
systemctl reload nginx #worker变化,master不变
systemctl restart nginx #整个nginx进程变化
用什么命令启动的,就用什么去管理进程。
rpm -ql | grep nginx
查看配置文件在什么地方
nginx.conf 分为:
1.核心模块---设置nginx的运行用户,worker的数量,日志的参数设置,在全局中的日志参数,
对后续的所有虚拟主机都生效
2.nginx的性能设置---tcp连接数设置
nginx实现网站部署的虚拟主机配置
一个server{}就是一个站点,
nginx支持include参数,导入外部配置文件,用于配置优化,让配置文件看着更清晰
改完后 nginx -t 测试语法,successful就是通过的意思
http{}主要用于解决用户的请求与响应整体功能
location{}用于匹配网站具体的URL路径
基于域名的多虚拟主机---------
bingc.cc 二级域名:
huoying.bingc.cc三级域名
haizeiwang.bingc.cc三级域名
在一台服务器上,基于用户访问的域名的不同,返回不同目录下的数据,给用户访问
groupadd www -g 666
useradd www -u 666 -g 666 -M -s /sbin/nologin
id www
Nginx配置文件{
user www ;设置低等级运行用户
}
vim /etc/nginx/conf.d/huoying.linux0224.conf
{
server
{
#支持中文的参数
charset utf-8;
如果是其他类型的文件,nginx默认不解析,直接下载
#创建端口
listen 80;
#nginx会匹配http://huoying.linux0224.cc
server_name huoying.linux0244.cc; ------------>域名
location /
{
#根据root参数,填写网页根目录信息
root /www/huoying/;
#默认找/www/huoying/下的Index.html的文件
index index.html;
}
}
}
mkdir -p /www/huoying
chmod -R www.www /www
cat > /www/huoying/index.html <<EOF
我是火影页面
EOF
mime.type定义了nginx识别的文件格式,需要提前定义
访问域名,发出Http请求,你的Http请求头中,就包含了Host主机信息,你明确访问的是huoying.linux0224.cc,nginx接受到该请求后,解析请求头部信息,匹配自己的server{}标签
,根据server_name这个值去匹配域名。
基于nginx的配置文件的匹配顺序: