Nginx---总结
Nginx优化
全局块配置
user 配置用户,一般为系统用户
worker_processes 开启工作进程的数量,一般为cpu核心数,设置为auto
worker_cpu_affinity 配置cpu亲和性,一般为auto
pid nginx的进程号文件的路径
work_rlimit_nofiles 配置最大文件打开数
events块配置
use 配置使用的算法,一般为epoll
worker_connections 配置单个worker进程可以同时处理的request请求
http块配置
log_format 定义日志格式
sendfile 对静态资源处理有效
tcp_nopush 配置静态资源是和sendfile同时使用
tcp_nodeny 当nginx做动态服务时,可以打开
keepalive_timeout 连接超时时间,可以适当降低,提前断开连接,回收网络资源
gzip on 对文件进行压缩可以使用gzip_company_level配置压缩等级
server块配置
error_log path level 定义错误日志格式与错误等级
access_log path logformat 定义访问日志与格式
location块配置
location 匹配顺序
精确匹配 开头匹配 正则匹配 正则匹配不区分大小写 不匹配正则区分大小写 不匹配正则不区分大小写 通配符
nginx功能
反向代理
使用模块proxy
配置位置 location块
配置命令
example
将请求代理到京东页面:
proxy_pass http://www.jd.com
负载均衡
①配置上游服务器
使用模块upstream
配置位置 http块,和server同一级别
使用配置命令 upstream
example
代理192.168.211.20:80和192.168.211.23:80
upstream web {
server 192.168.211.20:80;
server 192.168.211.23:80;
}
②配置反向代理
proxy_pass http://web;
防盗链
使用模块referer
使用命令 valid_referers none blocked `白名单,可以是域名,也可以是网段`;
必须在日志格式中使用变量$http_referer
example 限制只有网段192.168.211.120/24网段可以使用本机图片资源
location ~ .*\.{png|gif|jpg}$ {
root /use/share/nginx;
valid_referers none blocked 192.168.211.120/24;
if ($invaild_referer) {
return 403;
}
}
地址重写
使用模块rewrite模块
使用位置 server,location块
使用命令 rewrite if return set rewrite_log
可以使用rewrite_log来配置地址重写日志
将访问到的ip跳转到京东界面
location / {
if ($host ~ ^www) {
rewrite .* http://jd.com ;
}
}
将访问脚本文件的请求返回403
location ~ \.(sh)$ {
default_type application/html;
return 403 "此文件禁止访问";
}
流量限制
使用模块limit_req模块进行
使用命令limit_req_zone $binary_remote_addr定义加密规则 zone=name(区域名字):10M rate=10r/s(设置速率)
使用命令limit_req进行流量限制
example
limit_req zone=name
使用geo和map来设置黑名单和白名单进行流量限制
geo $limit {
defautl 1;
192.168.211.25/24 0;
}
map $limit $limit_key {
1 "";
0 $binary_remote_addr;
}
用户信任登录
使用模块auth_basic
使用命令: auth_basic auth_basic_user_file
使用命令htpasswd进行用户的密码加密
nginx性能监控
使用模块stub_status
作用:监控nginx当前的访问数,处理数和拒绝访问数
相关配置: stub_status
配置位置: location
日志
相关模块: log模块
相关配置: http块,server块,location块
相关命令: access_log error_log log_format
定义访问日志路径已经格式
定义错误日志路径以及等级
https使用
使用模块SSL
使用位置 location
作用: 配置更安全的HTTPS协议进行传输
HTTPS比HTTP安全的原因:
http是明文传输,容易被监听,篡改和冒充
https是加密传输,可以使用加密算法进行加密防止信息被监听,然后使用AC证书进行用户身份认证防止他人冒充,最后还可以使用哈希算法进行信息校验,防止信息被篡改
SSL相关协议:
SSL握手协议:负责进行连接,涉及证书的认证,数据加解密
SSL记录协议:负责进行数据的传输