Nginx 核心技术
Nginx 适用场景
- 静态资源服务 - 通过本地文件系统提供服务
- 反向代理服务 - nginx的强大性能、缓存加速、负载均衡
- API服务 - OpenResty
Nginx 优点
- 高并发,高性能
- 可扩展性好
- 高可靠
- 热部署
- BSD许可证
Nginx 组成
Nginx 配置通用语法
- 配置文件由指令与指令块构成
- 每条指令以“;”结尾,指令与参数间以空格分隔
- 指令块以{}大括号将多个指令组织在一起
- include语句允许组合多个配置文件以提升可维护性
- 使用#添加注释,提高可读性
- 使用$符号使用变量
- 部分指令的参数支持正则表达式
配置参数
- 时间单位 ms/s/m/h/d/w/m/y
- 空间单位
Nginx 命令行
http 配置的指令块
server {
listen 80;
server_name test.com www.test.com;
location /root {
alias /webroot/www;
root html;
}
}
nginx gzip压缩
来提高页面加载速度
gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度,压缩会消耗nginx的cpu性能
gzip压缩可以配置http,server和location模块下
location ~ .*\.(jpg|gif|png|bmp)$ //~区分大小写, 匹配任意字符开头以.jpg或.bmp结尾,注意这里的jgp等类型需要使用gzip_types调用
gzip on; //开启gzip压缩
gzip_min_length 1; //小于多少字节就不做压缩处理
gzip_comp_level 3; //压缩比率
gzip_types //压缩类型,根据/usr/local/nginx/conf/mime.types中定义;
nginx autoindex
打开目录浏览功能,启用目录流量
location / {
autoindex on;
autoindex_localtime on; #之类的参数写这里
}
GoAccess分析Nginx日志
为了查看本站点的健康状况以及用户访问情况,就需要定期的分析服务器的 access 日志。但是由于没有使用日志分析工具,只能使用 cat、awk、sed 等命令做一些简单的日志分析统计,这样分析结果不理想也不全面,方法也极不高效。作为个人站点更适合引入轻量级的日志分析工具,例如 GoAccess ,其使用简单且分析效果较好
配置 nginx.conf
为了提高 GoAccess 分析准确度,需要配置 nginx.conf 的 log_format 项。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_body"';
安装GoAccess
goaccess.conf配置
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
GoAccess 命令参数
$ goaccess -h
# 常用参数
-a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项
-d --with-output-resolver 在HTML/JSON输出中开启IP解析,会使用GeoIP来进行IP解析
-f --log-file 需要分析的日志文件路径
-p --config-file 配置文件路径
-o --output 输出格式,支持html、json、csv
-m --with-mouse 控制面板支持鼠标点击
-q --no-query-string 忽略请求的参数部分
--real-time-html 实时生成HTML报告
--daemonize 守护进程模式,--real-time-html时使用
- 控制台模式
$ goaccess -a -d -f /data/logs/fanhaobai.com.access.log -p /etc/goaccess.conf
- html模式
$ goaccess -a -d -f /data/logs/fanhaobai.com.access.log -p /etc/goaccess.conf -o /data/html/hexo/public/go-access.html
TLS/SSL
Nginx 高级探索
Master、Worker
reload