Nginx学习笔记-《Nginx核⼼知识100讲》⽂章⽬录
初识Nginx
概述
Nginx适⽤于哪些场景:
静态资源服务
- 通过本地⽂件系统提供服务
反向代理服务
Nginx的强⼤性能
缓存
负载均衡
Api服务
OpenResty
Nginx出现的历史背景(Nginx为什么出现?)
低效的Apeche:⼀个连接对应⼀个进程,处理完⼀个请求才会处理下⼀个,⽆法⽀持“⾼并发”。
新增服务器绝⼤多数都是Nginx
Nginx的优点
⾼并发 & ⾼性能
主流服务器32核64G可达数千万并发连接(RPS, Requests Per Second)
处理静态资源请求可达⼀百万RPS
可拓展性好
⾼可靠性
可持续运⾏数年
热部署
不停⽌服务,升级Nginx
BSD许可证
可定制Nginx且商⽤
Nginx的四个组成部分:
Nginx⼆进制可执⾏⽂件(由各模块源码编译出的⼀个⽂件)
access.log访问⽇志(记录每⼀天http请求)
error.log错误⽇志(定位问题)
安装Nginx
安装⽅式:
apt/yum
编译安装:⽅便安装第三⽅模块
选择哪⼀个Nginx发⾏版:
开源版即可
Mainline:有新功能
Stable:稳定版
编译安装
下载地址:
官⽅⽂档:
下载:
wget /download/nginx-1.14.
tar -xzf nginx-1.14.
cd nginx-1.14.2 # 进⼊源码⽬录
源码⽬录结构
auto⽬录:编译、lib库、操作系统判断
CHANGS⽂件:功能改动和BUGFIX⽂档
conf⽂件:conf配置⽰例
configure脚本:执⾏编译前的动作
contrib⽬录:vim不⽀持nginx语法
# 配置vim,⽀持nginx语法
cp -r contrib/vim/* ~/.vim/
html⽬录:html⽰例
50x.html:500错误⽰例
index.html:⾸页⽰例
man⽂件:帮助⽂件
src⽬录:源代码
configure⽀持的参数:./configure --help | more
# 安装在/opt/nginx⽬录,可能报错,安装对应依赖即可
./configure --prefix=/opt/nginx
# 编译
make
# ⾸次安装使⽤
make install
升级Nginx时,不能执⾏make install:
把objs/nginx复制进安装⽬录中
安装动态模块的中间⽂件也在objs⽬录下
安装完成后,/opt/nginx的结构
sbin:nginx程序
conf:nginx配置,均复制于/nginx/nginx-1.14.2
logs:⽇志
可将nginx⽬录配置进环境变量,⽅便使⽤:export PATH="$PATH:/opt/nginx/sbin" Nginx配置⽂件的通⽤语法
配置⽂件由指令与指令块构成
每条指令以;分号结尾,指令与参数间以空格符号分割。
指令块以{}⼤括号将多条指令组织在⼀起
include语句允许多个配置⽂件以提升可维护性
使⽤#符号添加注释,提⾼可读性
使⽤$符号使⽤变量
部分指令的参数⽀持正则表达式
配置参数:时间单位与空间单位
在这⾥插⼊图⽚描述
在这⾥插⼊图⽚描述http配置的指令块
在这⾥插⼊图⽚描述Nginx命令⾏
格式:nginx -s command:nginx -s reload
帮助:-? -h
使⽤指定配置指令:-g
指定运⾏⽬录:-p
发送信号:-s
⽴刻停⽌服务:stop
优雅地停⽌服务:quit
优雅地重载配置⽂件:reload
重新开始记录⽇志⽂件:reopen,常⽤于⽇志切割测试配置⽂件是否有语法错误:-t -T
打印nginx的版本信息、编译信息等:-v -V
热部署
# 替换nginx⼆进制执⾏⽂件
cp /home/jay/lxj/nginx-1.14.2/objs/nginx /opt/nginx/sbin/nginx -f
# 发送信号给nginx,13426为nginx master的PID,结果如⽰例
nginx ssl证书配置kill -USR2 13426
# 优雅地关闭⽼nginx进程
kill -WINCH 13426
# ⽼master不会关闭,可reload再次拉起新worker(我没有实现)
⽰例:新⽼nginx同时运⾏,但⽼nginx不再监听对应端⼝80/443
在这⾥插⼊图⽚描述Nginx搭建静态资源服务器
在f中配置
alias类似root,但更常⽤。
alias:url路径与指定⽬录路径相同。
# 静态⽂件服务器
server {
listen 8080;
server_name geek.lxj.pub;
# charset koi8-r;
access_log logs/geek.access.log main;
location / {
alias dlib/; # 根⽬录与dlib/后相同
autoindex on;
set $limit_rate 1k;
index index.htm;
}
#error_page 404 /404.html;
}
autoindex模块:把⽂件⽬录结构分享给访问者。
location / {
autoindex on;
}
在这⾥插⼊图⽚描述
set $limit_rate 1k;:限制Nginx对浏览器的响应速度,避免个别⼤⽂件占满带宽。⽰例为 每秒1K。
配置access⽇志:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
⽤Nginx搭建⼀个具备缓存功能的反向代理服务
把静态服务器作为“上游服务”
通过Nginx反向代理
⽅便通过“负载均衡”增加“上游”服务器,来提升处理性能。
也⽅便在上游服务出现问题时,Nginx把请求转交给正常服务器。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论