Nginx优化与防盗链配置

目录

  • 实验
  • 一、隐藏版本号
  • 二、网页缓存
  • 三、网页压缩
  • 四、日志分割
  • 五、连接超时
  • 六、更改Nginx的运行进程数
  • 七、防盗链设置

实验

一、隐藏版本号

  • 隐藏Nginx版本号,避免安全漏洞泄露
  • 方法:
    1、修改配置文件法
    手工编译Nginx服务,看之前的博客有详细步骤,这里不在一一赘述
    Nginx优化与防盗链配置_第1张图片
[root@192 ~]# vim /usr/local/nginx/conf/nginx.conf  #修改配置文件,添加一下语句
http {
  include mime.typrs;
  default_type application/octet-stream;
  server_tokens off;
  ...
}

Nginx优化与防盗链配置_第2张图片

2、修改源码法

[root@promote opt]# rz -E   #将包拉进来
rz waiting to receive.
[root@promote opt]# ls
nginx-1.12.2.tar.gz  rh
[root@promote opt]# tar zvxf nginx-1.12.2.tar.gz   #解压
[root@promote opt]# vim nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION   "1.1.1"     #开启,修改
然后编译安装

二、网页缓存

  • 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便日后访问时直接返回数据,加快访问速度
  • 一般针对静态网页设置,动态不做设置
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf 
location ~\.(gif|jpg|jpeg|png|ico)$ {
            root   html;
            expires 1d;    ##缓存一天
}
cd /usr/local/nginx/html/  #到Nginx的站点目录将图片复制进来
ls
rz -E
mv 640_\(1\).webp test.jpg   ##原地改名
vim index.html 
<h1>this is test web</h1>   #写网页
<img src="test.jpg"/>       #添加图片

systemctl restart nginx.service 

Nginx优化与防盗链配置_第3张图片
抓包工具可以直接去下载,也可以评论问我要
Nginx优化与防盗链配置_第4张图片

Nginx优化与防盗链配置_第5张图片

三、网页压缩

添加配置文件参数

vim /usr/local/nginx/conf/nginx.conf
  gzip on;                               #开启gzip压缩功能
  gzip_min_length 1k;             #压缩阈值
  gzip_buffers 4 16k;               #buffer 大小为416k缓冲区大小
  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-http-php
  application/javascript application/json;
  gzip_disable "MSIE[1-6]\.";     #配置禁用gzip条件,支持正则,表示ie6以下不启用gzip
  gzip_vary on;
[root@promote ~]# systemctl restart nginx

Nginx优化与防盗链配置_第6张图片
Nginx优化与防盗链配置_第7张图片

四、日志分割

  • Nginx本身不具备日志分割功能,但可以通过脚本来实现
[root@localhost opt]# vim 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"
#自动创建日志目录
[ -d $logs_path ] || mkdir -p $logs_path
#分割日志
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
#生成新日志
kill -HUP $(cat $pid_path)
#删除30天前的日志
find $logs_path -mtime +30 | xargs rm -rf
[root@promote opt]# chmod +x fenge.sh
[root@promote opt]# ./fenge.sh 
[root@promote opt]# ls /var/log/nginx/
test.con-access.log-20200811   ##分割的日志文件

通过计划性任务每天分割日志

crontab -e
0 1 * * * /opt/fenge.sh

五、连接超时

  • 参数:
    Keepalive_timeout ##设置连接保持超时时间
    Client_header_timeout ##指定等待客户端发送请求头的超时时间
    Client_body_timeout ##设置请求体读超时时间
vim /usr/local/nginx/conf/nginx.conf
http {
  Keepalive_timeout 100;
  client_header_timeout 80;
  client_body_timeout 80;  
}

六、更改Nginx的运行进程数

  • 在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户请求,避免造成阻塞
  • 修改配置文件的worker_processes参数
    一般设为CPU的个数或者核数
    在高并发情况下可设置CPU个数或核数2倍
  • 增加进程数,可减少系统的开销,提升服务速度

在高并发环境中,需要启动更多的 Nginx 进程以保证快速响应,用以处理用户的请求, 避免造成阻塞。

使用 ps aux 命令查看 Nginx 运行进程的个数。从命令执行结果可以看出 master process 是 Nginx 的主进程,开启了 1 个;worker process 是子进程,子进程也是开启了1个,与配置文件中对应。

[root@promote /]# ps aux | grep nginx
root      12631  0.0  0.0  20540   804 ?        Ss   11:02   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     12632  0.0  0.0  23068  1952 ?        S    11:02   0:00 nginx: worker process
root      13685  0.0  0.0 112724   988 pts/0    S+   11:20   0:00 grep --color=auto nginx
[root@localhost opt]# cat /proc/cpuinfo | grep -c "physical"
8  ##查看到最大支持的核心数是8
[root@localhost opt]# vim /usr/local/nginx/conf/nginx.conf
worker_processes  8;
[root@promote /]# systemctl restart nginx
[root@promote /]# ps aux | grep nginx
root      13735  0.0  0.0  20540   672 ?        Ss   11:24   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     13736  0.0  0.0  23068  1392 ?        S    11:24   0:00 nginx: worker process
nginx     13737  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13738  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13739  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13740  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13741  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13742  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
nginx     13743  0.0  0.0  23068  1396 ?        S    11:24   0:00 nginx: worker process
root      13745  0.0  0.0 112724   988 pts/0    S+   11:24   0:00 grep --color=auto nginx

七、防盗链设置

原网页

手工编译Nginx
dns域名解析
[root@promote html]# vim index.html   ##写入网页
<h1>this is test web</h1>
<img src="test.png"/>

盗链网站

[root@promote html]# yum -y install httpd
[root@promote nginx-1.12.2]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.195.20:80
#Listen 80
[root@promote nginx-1.12.2]# cd /var/www/html/
[root@promote html]# ls
[root@promote html]# vim index.html
<h1>this is daolian web</h1>
<img src="http://www.test01.com/test.png"/>
[root@promote nginx-1.12.2]# iptables -F
[root@promote nginx-1.12.2]# setenforce 0
[root@promote nginx-1.12.2]# systemctl start httpd

Nginx优化与防盗链配置_第8张图片
验证防盗链设置

vim /usr/local/nginx/conf/nginx.conf
location ~*\.(jpg|gif|swf)$ {
  valid_referers none blocaked *.test01.com test01.com;
  if ($invalid_referer) {
    rewrite ^/ http://www.test01.com/error.png;  
   }
}
[root@localhost opt]# cd /usr/local/nginx/html/
将防止盗链的图片加进去
[root@promote html]# ls
50x.html  error.png  index.html  index,html.bak  test01  test02  test.png
[root@promote html]# systemctl restart nginx.service 

你可能感兴趣的:(nginx,虚拟主机,网络服务)