Linux-NGINX优化与防盗链
一、nginx优化
1.1、隐藏版本号
1.1.1、查看版本号
curl -I http://192.168.139.100
1.1.2、隐藏版本号
修改配置文件 vim /usr/local/nginx/conf/nginx.conf
systemctl restart nginx 重启服务
1.1.3、修改版本号
vim /opt/nginx-1.12.2/src/core/nginx.h #define NGINX_VERSION "6.66.6" #修改版本号 #define NGINX_VER "KKK" NGINX_VERSION #修改服务器类型
cd /opt/nginx-1.12.2/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make install
vim /usr/local/nginx/conf/nginx.conf server_tokens on; ##把off改为on systemctl restart nginx ##重启nginx服务 curl -I http://192.168.139.100
1.2、修改用户和组
到/usr/local/nginx/conf/nginx.conf下修改配置文件
vim /usr/local/nginx/conf/nginx.conf user nginx nginx; #取消注释,修改用户为nginx ,组为nginx systemctl restart nginx ps aux | grep nginx 主进程由root创建,子进程由nginx创建
1.3、缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
一般针对静态网页设置,对动态网页不设置缓存时间
vim /usr/local/nginx/conf/nginx.conf ###添加以下配置文件 location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作为缓存对象 root html; expires 1d; #指定缓存时间,1天
cd 到html,选择一张图片拖进去
重启nginx服务,进http://192.168.139.100/cat.jpg
1.4、日志切割
随着Nginx服务的应用,产生的日志也会逐渐增加,为了方便掌握Nginx的运行状态,需要时刻关注Nginx日志文件。太大的日志文件对监控是一个大灾难,不便于分析排查,需要定期的进行日志文件的切割。
下面我们可以写个脚本来对Nginx日志进行分割:
1. #写脚本 vim /usr/local/nginx/nginx_log.sh #!/bin/bash #this is for divide nginx log d=$(date +%F -d -1day) #显示前一天的时间 path="/var/log/nginx" pid="/usr/local/nginx/logs/nginx.pid" [ -d $path ] ||mkdir -p $path #创建日志文件目录 mv /usr/local/nginx/logs/access.log ${path}/www.yxp.com-$d #移动并重命名日志文件 kill -USR1 $(cat $pid) #重建新日志文件 find $path -mtime +30 -delete #删除30天之前的日志文件 2. #赋予权限 chmod +x /usr/local/nginx/nginx_log.sh 3. #计划任务 [root@localhost nginx]#crontab -e 30 1 * * * /usr/local/nginx/nginx_log.sh
1.5、连接超时
vim /usr/local/nginx/conf/nginx.conf keepalive_timeout 65 180; client_header_timeout 80; client_body_timeout 80; systemctl restart nginx
1.6、更改进程数
cat /proc/cpuinfo | grep -c "physical id" #查看cpu核数 ps aux | grep nginx #查看nginx主进程中包含几个子进程 vim /usr/local/nginx/conf/nginx.conf events { worker_connections 2; #修改为核数相同或者2倍 }
1.7、配置网页压缩
vim /usr/local/nginx/conf/nginx.conf gzip on; #取消注释,开启gzip压缩功能 gzip_min_length 1k; #最小压缩文件大小 gzip_buffers 4 64k; #压缩缓冲区,大小为4个64k缓冲区 gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0) gzip_comp_level 6; #压缩比率 gzip_vary on; #支持前端缓存服务器存储压缩页面 gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; #压缩类型,表示哪些网页文档启用压缩功能 systemctl restart nginx
二、配置防盗链
2.1、网页准备
##盗链网站主机(192.168.222.100)网页准备 1. #再开一台centos服务器,安装httpd yum install -y httpd 2. #切换至/var/www/html cd /var/www/html vim index.html <html> <body> <h1>this is web <img src="http://www.zty.com/game.jpg"/> </body> </html> 3. #在Web源主机(192.168.222.10)添加域名 vim /etc/hosts 192.168.222.10 www.zty.com 4. #在Web源主机(192.168.222.10)添加图片 vim /usr/local/nginx/html/index.html <img src="game.png"> 5. #在盗链网站主机(192.168.222.100)添加域名 192.168.59.118 www.zty.com 192.168.59.108 www.abc.com 6. #在盗链网站开启服务,并在网页中测试 systemctl start httpd
2.2、配置防盗链
1. #在Web源主机(192.168.222.10) vim /usr/local/nginx/conf/nginx.conf location ~* \.(jpg|swf)$ { valid_referers none blocked *.zty.com zty.com; if ( $invalid_referer ) { rewrite ^/ http://www.zty.com/error.png; } } 2. #检查语法是否有错 nginx -t 3. #将盗图图片拖进去 cd /usr/local/nginx/html/ 4. #重启服务 systemctl restart nginx.service 5. #在网页测试 源主机网页: http://www.zty.com/ 盗链主机网页: http://www.abc.com/