配置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.2和nginx
./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 //使其旧的进程退出