Nginx配置优化

配置Nginx隐藏版本号:[修改源码包(在安装前);第二种:修改配置文件]

curl -I http://192.168.100.171  //显示nginx头部信息

【查看版本号】打开浏览器,按F12出现一个开发工具,在开发工具里有一个network ,找到访问连接后点击head即可查看版本

【卸载nginx:】

killall -9 nginx  //杀死进程

rm -rf /usr/local/nginx  //清理安装

cd /usr/src/nginx-1.14.2/  //进入解压路径下

make clean  //清理编译内容(在解压路径下操作)

rm -rf /usr/src/nginx-1.14.2/   //删除解压路径

【修改源码包】

tar xf nginx-1.14.2.tar.gz -C /usr/src/  //解压源码包

cd /usr/src/nginx-1.14.2/  //进入解压路径下

vim src/core/nginx.h  //修改文档

 

 

改文件中1.14.2nginx

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install   //重新安装

curl -I http://192.168.100.171  //显示nginx头部信息

systemctl stop firewalld

iptables -F

setenforce 0  //关闭防火墙

【修改配置文件】

curl -I http://192.168.100.171  //查看当前nginx头部信息

vim /usr/local/nginx/conf/nginx.conf  //修改配置文件

ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx.conf  //做软连接】

 vim /etc/nginx.conf  //修改配置文件

//在文件里加入server_tokens off;

nginx -t  //检测语法是否有问题

 

killall -HUP nginx  //重新加载配置

curl -I http://192.168.100.171  //查看当前nginx头部信息,此时版本信息已经隐藏

 修改nginx用户和组:

 

vim /etc/nginx.conf  //在配置文件里修改用户和组

 

 

 

nginx -t  //检查配置文件语法是否有误

killall -HUP nginx  //重启服务

ps uax | grep nginx  //过滤查看nginx工作

 

 

 配置nginx网页缓存时间:

 

 vim /etc/nginx.conf   //编辑主配置文件

 

 

 

 

 

 cd /usr/local/nginx/html/  //进入路径下,将图片放入此路径下

vim index.html   //修改文件

//3.jpg为图片名称

 

killall -HUP nginx  //重启服务

//测试结果

实现nginx的日志切割:

ll /usr/local/nginx/logs/access.log   //查看一下日志位置

 

 

 

 

tail -f /usr/local/nginx/logs/access.log   //查看日志

vim /opt/cut_nginx_log.sh  //opt下编写一个脚本

【脚本内容】

#!/bin/bash

#cut_nginx_log.sh

 

datetime  //时间=$(date -d "-1 day" "+%Y%m%d")

log_path  //日志存放位置="/usr/local/nginx/logs"

pid_path  //pid文件(保存进程号)="/usr/local/nginx/logs/nginx.pid"

[ -d $log_path/backup ] || mkdir -p $log_path/backup

if [ -f $pid_path ]

then

        mv $log_path/access.log $log_path/backup/access.log-$datetime

        kill -USR1 $(cat $pid_path)

        find $log_path/backup -mtime +30 | xargs rm -f  //只保留30内的日志文件

else

        echo "Error,Nginx is not working!" | tee -a /var/log/messages

fi

~           

date "+%Y%m%d"  //显示当天日期

date -d "-1 day" "+%Y%m%d"  //显示前一天日期

date -d "+1 day" "+%Y%m%d"  //显示后一天日期

】   

 

chmod +x /opt/cut_nginx_log.sh  //给脚本加执行权限

 

/opt/cut_nginx_log.sh   //执行脚本

 

ls /usr/local/nginx/logs/  //查看文件backup是否存在

 

 

 

 ls /usr/local/nginx/logs/backup/  //查看backup文件

cat /usr/local/nginx/logs/access.log  //查看新生成的的文件access.log

 tail -f /usr/local/nginx/logs/access.log   //监控新的日志文件access.log

 

 //使用一次浏览器变生成一次新的日志内容

killall -9 nginx  //杀死nginx进程

/opt/cut_nginx_log.sh   //杀死进程后再次执行脚本

 

 

//没有把nginx.pid删掉所以会报错

rm -rf /usr/local/nginx/logs/nginx.pid   //nginx.pid删掉后重新执行脚本,便会显示nginx没有工作

 

tail /var/log/messages  //nginx没有工作的信息会保存到messages里面

 

 

 

  crontab -e  //设置一个周期性的计划任务

//每天凌晨执行脚本对日志进行切割

配置nginx连接超时:

 vim /etc/nginx.conf  //修改文件

keepalive_timeout  65; //保持连接的时间,主机与客户端传输请求保留时间(避免过多占用服务器资源)

 client_header_timeout 30; //设置客户端等待请求头的时间

client_body_timeout 30;  //设置等待客户端的主体时间】

 

 

 nginx -t   //查看语句是否有问题

killall -HUP nginx  //重启服务

 

 

 

 

 

 更改nginx运行教程:

 

  vim /etc/nginx.conf  //修改配置文件

//改为4096

 

 

//添加worker_cpu_affinity  0001 00100 cpu核心分配,注意核心数与进程匹配)

nginx -t  //检查文本语句是否正确

killall -HUP nginx  //重启服务

 

配置nginx实现网页压缩功能:

 

nginx -v  //查看版本号

 

nginx -V  //查看configure后的配置项

//--with-http_gzip_static_module 支持nginx的压缩模块,对文件进行压缩以节约网站带宽,提升用户的访问体验,模块默认已经安装

vim /etc/nginx.conf   //修改配置文件

 

 

 

 

 gzip  on; //开启gzip压缩输出

gzip_min_length 1k;   //用于设置允许压缩的页面最小字节数

gzip_buffers 4 16k; //表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来储存gzip压缩结果

gzip_http_version 1.1;  //设置识别http协议版本,默认是1.1

gzip_comp_level 2;  //gzip压缩比,1-9等级

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;  //压缩类型,是就对哪些网页文档启用压缩功能】

nginx -t  //检查语法是否有误

killall -HUP nginx  //重启服务

//测试结果

 

配置nginx实现防盗链功能:

 

【防盗链】

 

vim /etc/nginx.conf   //修改主配置文件

 

location ~* \.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {

 

            valid_referers none blocked *.source.com source.com;  //设置信任网站

 

            if ($invalid_referer) {

 

                rewrite ^/ http://www.source.com/error.txt;  //把访问转到这里

 

                #return 403;

 

            }

 

        }

 

 

 vim /usr/local/nginx/html/error.txt  //编辑一份txt文件(文件内容:<h1>盗链不要脸</h1>

killall -HUP nginx  //重启文件,重新测试按F12会出现error.txt内容

 

 

nginx为目录添加访问控制

 

 vim /etc/nginx.conf   //修改主配置文件

 

location /dmin {

 

                stub_status on;

 

                access_log off;

 

}

 

 nginx -t  //查看语法是否错误

killall -HUP nginx  //重启服务

yum -y install httpd-tools  //安装

 

 

 

 //查看htpasswd和由谁生成

htpasswd -c /usr/local/nginx/.htpasswd crushlinux  //创建保存密码和用户的文件(-c只可以用一次,否则只会有一个用户和密码)

cat /usr/local/nginx/.htpasswd   //查看

 

 

 

 

 

 

 

第二次使用带有-c的命令则会只有新创建的用户和密码

vim /usr/local/nginx/conf/nginx.conf  //编辑文件

 

 

 

 【内容】

location ~ /status {

            stub_status on;

            access_log off;

            auth_basic "Nginx Status";  //basic是一种认证,”认证名字”

            auth_basic_user_file /usr/local/nginx/.htpasswd;  //指定认证的文件名

[deny 192.168.100.0/24;   //添加后面则不允许100网段的进行访问]

            }

nginx -t  //检查语法

killall -HUP nginx  //重启服务

//测试

 nginx自定义错误页面:

 

cd /usr/local/nginx/html/  //进入html路径下

将准备好的错误页面图片传入

自定义错误页面的模板命令

vim 40x.html  //配置40x.html文件【文件内容:<img src ="123.jpg"/>

killall -HUP nginx  //重启服务

 

自动索引(自动下载站):

 

cd /usr/local/nginx/html/  //进入html路径下

 

mkdir mirrors  //创建一个文件夹

 

cd mirrors  //进入路径下

 

mkdir 1

 

cd 1

 

touch Cent0s7.9.iso

 

vim /usr/local/nginx/conf/nginx.conf

 

【内容】 location /mirrors {

 

                autoindex on;

 

        }

 

 

killall -HUP nginx

 

//测试结果

Nginx平滑升级版本:(升级版本时,线上业务不可以停,确保网站可以正常访问并且对网站进行升级)

 wget http://nginx.org/download/nginx-1.16.1.tar.gz  //下载文件

nginx -V  //获取配置项

【编译新版本nginx源码包,安装路径需要与旧版本一致,注意不执行make install

tar xf nginx-1.16.1.tar.gz -C /usr/src/  //解压

cd /usr/src/nginx-1.16.1/  //进入到解压路径下

./configure 旧版本配置项+ && make

 

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old  //备份2进制文件,起名为nginx.old

cp objs/nginx /usr/local/nginx/sbin/  //nginx复制到sbin

cd

nginx -t  // 用新程序加载旧的配置文件查看是否有问题

ps aux | grep nginx

 

 kill -USR2 5976   //发送USR2信号

kill -WINCH  5976  //发送WINCH信号,使其旧版本逐渐关闭

【kill -HUP  5976  //旧进程会重新打开】

Kill -QUIT 5976  //使其旧的进程退出

posted @ 2019-09-12 20:59  三毛钱呲花  阅读(261)  评论(0编辑  收藏  举报