服务优化
隐藏Nginx版本号,避免安全漏洞泄露
方法
修改配配置文件 /usr/local/nginx/conf/nginx.conf
在34行添加如图信息
server_tokens off;
修改源代码
深入优化
修改用户和组、
配置网页缓存
修改 Nginx 的配置文件,在新 location 段加入 expires 参数,指定缓存的时间,1d 表示一天
vi /usr/local/nginx/conf/nginx.conf
expires 1d;
日志分割
打开文件
vi /opt/fenge.sh
编写脚本
#!/bin/bash
# Filename: fenge.sh
#-d "-1 day" 获取昨天的日志
d=$(date -d "-1 day" "+%Y%m%d")
#路径
logs_path="/var/log/nginx"
#存放nginxid号,用来发送日志
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
# 移动并重命名日志文件
mv /usr/local/nginx/logs/access.log ${logs_path}/access.log-$d
# 重建新日志文件
kill -USR1 $(cat $pid_path)
# 删除 30 天之前的日志文件
find $logs_path -mtime +30 |xargs rm -rf
给执行权限
chmod +x /opt/fenge.sh
crontab -e
0 0 * * * /opt/fenge.sh
连接超时
为避免同一客户端长时间占用连接,造成资源浪费,可设置超时相应的连接超时参数,实现控制连接访问时间
超时参数
Keepalive——timeout
设置连接保持超时时间
Client_header_timeout
指定等待客户端发送请求头的超时时间
Client_body_timeout
设置请求体读超时时间
更改Nginx运行进程数
修改配置文件的woker_processes参数
一般设为CPU的个数或者核数
在高并发情况下可设置为CPU个数或者核数的2倍
好处
增加进程数,可减少了系统的开销,提升了服务速度
配置网页压缩
作用:Nginx 的 ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能,允许 Nginx 服务器将输出内容发送到客户端之前进行压缩,以节约网站的带宽,提升用户的访问体验
打开配置文件 vi /usr/local/nginx/conf/nginx.conf
在33行的注释取消
为其添加配置
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_min_length 1k;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
# gzip on:开启 gzip 压缩输出;
# gzip_min_length 1k:用于设置允许压缩的页面最小字节数;
# gzip_buffers 4 16k:表示申请 4 个单位为 16k 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储 gzip 压缩结果;
# gzip_http_version 1.0:用于设置识别 http 协议版本,默认是 1.1,目前大部分浏览器已经支持 gzip 解压,但处理较慢,也比较消耗服务器 CPU 资源;
# gzip_comp_level 2:用来指定 gzip 压缩比,1 压缩比最小,处理速度最快;9 压缩 比最大,传输速度快,但处理速度最慢,使用默认即可;
# gzip_types text/plain:压缩类型,是对哪些网页文档启用压缩功能;
# gzip_vary on:选项可以让前端的缓存服务器缓存经过 gzip 压缩的页面。
编辑文件内容vi /usr/local/nginx/html/index.html (整大点)
curl -I -H"Accept-Encoding: gzip, deflate" "http://127.0.0.1/index.html"
配置防盗链
1.第一台机器
2.第二台机器,部署上nginx后
cat > /usr/local/nginx/html/index.html << EOF
<html><body><h1>hello</h1>
<img src="http://www.kgc01.com/logo_jpg.jpg"/>
</body></html>
EOF
3.新打开一台桌面版Linux
防盗
在第一台机器
在43行添加配置
location ~* \.(gif|jpg|jpeg)$ {
valid_referers *.kgc01.com;
if ($invalid_referer) {
rewrite ^/ http://www.kgc01.com/error.png;
}
}
# ~* \.(jpg|gif|swf)$:这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的 文件;
# Valid_referers:设置信任的网站,可以正常使用图片;
# If 语句:如果链接的来源域名不在 valid_referers 所列出的列表中,$invalid_referer 为 1,则执行后面的操作,即进行重写或返回 403 页面。
# valid_referers的值一共有四种 none、blocked、server_names、string
# none:直接访问url,而不使用任何网站或链接的跳转,$http_referer变量的值是空的。
# blocked:请求标头中存在“ Referer”字段,但其值已被防火墙或代理服务器删除;这些值是不以“ http://”或“ https://”开头的字符串
# server_names: 写域名,设置允许的域名