一 缓存优化
- 手工编译安装Nginx服务
解压缩包
tar zxvf nginx-1.12.2.tar.gz -C /opt
创建用户
useradd -M -s /sbin/nologin nginx
安装环境依赖包
yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
配置
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
创建软连接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
便于服务管理
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG;;
stop)
kill -s QUIT $(cat $PIDF);;
restart)
$0 stop
$0 start;;
reload)
kill -s HUP $(cat $PIDF);;
*)
exit 1
esac
exit 0
#添加执行权限
chmod +x /etc/init.d/nginx
#添加为系统服务
chkconfig --add nginx
启动服务
service nginx start
检查服务
netstat -ntap | grep nginx
- 修改主配置文件
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
76 location ~\.(gif|jpeg|jpg|png|ico|bmp)$ {
77 root html;
78 expires 1d; //缓存一天
79 }
- 修改nginx服务主页,添加一张图片
<img src="a.jip"/>
- 关闭防火墙,开启服务,验证缓存
[root@localhost nginx-1.12.2]# systemctl stop firewalld.service
[root@localhost nginx-1.12.2]# setenforce 0
[root@localhost nginx-1.12.2]# service nginx start
验证
二 压缩优化
- 修改主配置文件
[root@localhost mnt]# vim /usr/local/nginx/conf/nginx.conf
gzip on; //开启gzip压缩功能,添加以下内容
gzip_min_length 1k; //压缩阈值
gzip_buffers 4 16k; //buffer 大小为4个16k缓冲区大小
gzip_http_version 1.1; //压缩版本
gzip_comp_level 6; //压缩比率,最小为1,最大为9
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json; //支持的压缩格式
gzip_disable "MSIE [1-6]\."; //配置禁用gzip条件,支持正则,表示ie6以下不启用gzip
gzip_vary on; //选择支持very header 可以让前段的缓存服务器经过gzip压缩的页面
- 修改站点目录文件,插入一张图片
[root@localhost mnt]# vim /usr/local/nginx/html/index.html
<img src="lol.jpg"/>
[root@localhost mnt]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html index.html lol.jpg
- 关闭防火墙,开启服务,验证压缩功能
[root@localhost html]# systemctl stop firewalld.service
[root@localhost html]# setenforce 0
[root@localhost html]# service nginx start
验证:
三 隐藏版本
- 为做隐藏版本时
[root@localhost html]# curl -I http://192.168.179.181/
HTTP/1.1 200 OK
Server: nginx/1.12.2 //版本号
Date: Mon, 23 Dec 2019 10:50:16 GMT
Content-Type: text/html
Content-Length: 633
Last-Modified: Mon, 23 Dec 2019 10:36:21 GMT
Connection: keep-alive
ETag: "5e0098a5-279"
Accept-Ranges: bytes
- 修改主配置文件,开启隐藏版本功能
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; //添加此内容
- 重启服务,验证版本号是否被隐藏
[root@localhost html]# curl -I http://192.168.179.181/
HTTP/1.1 200 OK
Server: nginx //隐藏此版本号
Date: Mon, 23 Dec 2019 10:55:18 GMT
Content-Type: text/html
Content-Length: 633
Last-Modified: Mon, 23 Dec 2019 10:36:21 GMT
Connection: keep-alive
ETag: "5e0098a5-279"
Accept-Ranges: bytes
四 服务的超时时间设置
- 修改主配置文件,设置服务器超时时间
[root@localhost core]# vim /usr/local/nginx/conf/nginx.conf
keepalive_timeout 65 180; //65秒为服务超时时间,180秒为客服端超时时间
client_header_timeout 80; //请求header超时时间设置
client_body_timeout 80; //请求body超时时间设置
五 日志分割
- 创建日志分隔脚本文件
vim /opt/fenge.sh
#!/bin/bash
#Filename:fenge.sh
d=$(date -d "-1 day" "+%Y%m%d") //生成前一天的日期
logs_path="/var/log/nginx" //定义路径
pid_path="/usr/local/nginx/logs/nginx.pid" //指向nginx的pid文件路径
[ -d $logs_path ] || mkdir -p $logs_path //判断是否有此目录,没有则创建该目录
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d //将原有的日志文件移除,
kill -USR1 $(cat $pid_path) //结束当天进程
find $logs_path -mtime +30 | xargs rm -rf //30天之前的日志文件删除
- 执行脚本,查看是否生成昨天的日志文件
[root@localhost opt]# ./fenge.sh
[root@localhost opt]# cd /var/log/nginx/
[root@localhost nginx]# ls
test.com-access.log-20191222
[root@localhost nginx]#
- 使用周期机会任务可以每天执行一次该脚本
[root@localhost nginx]# crontab -e
0 0 1 * * source /opt/fenge.sh