目录:

一、隐藏版本号

二、修改用户与组

三、缓存时间

四、日志切割

五、连接超时

六、更改进程数

七、配置网页压缩

一、隐藏版本号

  • 可以使用 Fiddler 工具抓取数据包,查看 Nginx版本
  • 也可以在 CentOS 中使用命令 curl -I http://192.168.0.102 显示响应报文首部信息
curl -I http://192.168.80.10

方法一:修改配置文件方式

1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 include mime.types;
4 default_type application/octet-stream;
5 server_tokens off; #添加,关闭版本号
6 ......
7 }
systemctl restart nginx
curl -I http://192.168.80.10

方法二:修改源码文件,重新编译安装

 1 vim /opt/nginx-1.12.0/src/core/nginx.h
2 #define NGINX_VERSION "1.1.1" #修改版本号
3 #define NGINX_VER "IIS" NGINX_VERSION #修改服务器类型
4 cd /opt/nginx-1.12.0/
5 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
6 make && make install
7
8 vim /usr/local/nginx/conf/nginx.conf
9 http {
10 include mime.types;
11 default_type application/octet-stream;
12 server_tokens on;
13 ......
14 }
15
16 systemctl restart nginx
17 curl -I http://192.168.80.10

二、修改用户与组

1 vim /usr/local/nginx/conf/nginx.conf
2 user nginx nginx; #取消注释,修改用户为 nginx ,组为 nginx
3
4 systemctl restart nginx
5
6 ps aux | grep nginx

三、缓存时间

 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 server {
5 ......
6 location / {
7 root html;
8 index index.html index.htm;
9 }
10
11 location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作为缓存对象
12 root html;
13 expires 1d; #指定缓存时间,1天
14 }
15 ......
16 }
17 }
18
19 systemctl restart nginx
http://192.168.80.10/game.jpg
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

四、日志切割

 1 vi /opt/fenge.sh
2 #!/bin/bash
3 # Filename: fenge.sh
4 d=$(date -d "-1 day" "+%Y%m%d") #显示前一天的时间
5 logs_path="/var/log/nginx"
6 pid_path="/usr/local/nginx/logs/nginx.pid"
7 [ -d $logs_path ] || mkdir -p $logs_path #创建日志文件目录
8 mv /usr/local/nginx/logs/access.log ${logs_path}/kgc.com-access.log-$d #移动并重命名日志文件
9 kill -USR1 $(cat $pid_path) #重建新日志文件
10 find $logs_path -mtime +30 -exec rm -rf {} \; #删除30天之前的日志文件
11 #find $logs_path -mtime +30 |xargs rm -rf
12
13 chmod +x /opt/fenge.sh
14 /opt/fenge.sh
15 ls /var/log/nginx
16 ls /usr/local/nginx/logs/access.log
17
18 crontab -e
19 0 1 * * * /opt/fenge.sh

五、连接超时

  • HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接
  • KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能
 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 keepalive_timeout 65 180;
5 client_header_timeout 80;
6 client_body_timeout 80;
7 ......
8 }
9
10 systemctl restart nginx
1 keepalive_timeout
2 指定KeepAlive的超时时间(timeout)。指定每个TCP连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。 Nginx的默认值是65秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为0,就禁止了keepalive 连接。
3 第二个参数(可选的)指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx 不会发送 Keep-Alive 响应头。
4
5 client_header_timeout
6 客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
7
8 client_body_timeout
9 指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。

六、更改进程数

1 cat /proc/cpuinfo | grep -c "physical id"    #查看cpu核数
2 ps aux | grep nginx #查看nginx主进程中包含几个子进程
3
4 vim /usr/local/nginx/conf/nginx.conf
5 worker_processes 2; #修改为核数相同或者2倍
6 worker_cpu_affinity 01 10; #设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000
7
8 systemctl restart nginx

七、配置网页压缩

  • Nginx的ngx_http_gzip_module压 缩模块提供对文件内容压缩的功能
  • 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装
  • 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 gzip on; #取消注释,开启gzip压缩功能
5 gzip_min_length 1k; #最小压缩文件大小
6 gzip_buffers 4 16k; #压缩缓冲区,大小为4个16k缓冲区
7 gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
8 gzip_comp_level 6; #压缩比率
9 gzip_vary on; #支持前端缓存服务器存储压缩页面
10 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; #压缩类型,表示哪些网页文档启用压缩功能
11 ......
12 }
1 cd /usr/local/nginx/html
2 先将game.jpg文件传到/usr/local/nginx/html目录下
3 vim index.html
4 ......
5 <img src="game.jpg"/> #网页中插入图片
6 </body>
7 </html>
8
9 systemctl restart nginx
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

八、配置防盗链

 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 server {
5 ......
6 location ~*\.(jpg|gif|swf)$ {
7 valid_referers *.kgc.com kgc.com;
8 if ( $invalid_referer ) {
9 rewrite ^/ http://www.kgc.com/error.png;
10 #return 403;
11 }
12 }
13 ......
14 }
15 }
1 ~* \.(jpg|gif|swf)$ :这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的文件;
2
3 valid_referers :设置信任的网站,可以正常使用图片;
4
5 后面的网址或者域名 :referer 中包含相关字符串的网址;
6
7 if语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为1,则执行后面的操作,即进行重写或返回 403 页面。
 1 网页准备:
2 Web源主机(192.168.80.10)配置:
3 cd /usr/local/nginx/html
4 将game.jpg、error.png文件传到/usr/local/nginx/html目录下
5 vim index.html
6 ......
7 <img src="game.jpg"/>
8 </body>
9 </html>
10
11 echo "192.168.80.10 www.kgc.com" >> /etc/hosts
12 echo "192.168.80.11 www.benet.com" >> /etc/hosts
13
14 盗链网站主机(192.168.80.11):
15 cd /usr/local/nginx/html
16 vim index.html
17 ......
18 <img src="http://www.kgc.com/game.jpg"/>
19 </body>
20 </html>
21
22 echo "192.168.80.10 www.kgc.com" >> /etc/hosts
23 echo "192.168.80.11 www.benet.com" >> /etc/hosts
24
25 在盗图网站主机上进行浏览器验证
26 http://www.benet.com

web源主机配置

盗链主机网站配置

  

  

  

  

Nginx优化与防盗链的更多相关文章

  1. 16.Nginx优化与防盗链

    Nginx优化与防盗链 目录 Nginx优化与防盗链 隐藏版本号 修改用户与组 缓存时间 日志切割 小知识 连接超时 更改进程数 配置网页压缩 配置防盗链 配置防盗链 隐藏版本号 可以使用 Fiddl ...

  2. Nginx的优化与防盗链

    Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...

  3. nginx的优化和防盗链

    nginx的优化和防盗链 目录 nginx的优化和防盗链 一.nginx的优化 1. 隐藏版本号 (1)隐藏版本号的原因 (2)查看版本号的方法 (3)隐藏方法一:修改配置文件 (4)隐藏方法二:修改 ...

  4. nginx secure_link下载防盗链

    下载服务器上有众多的软件资源, 可是很多来源不是本站,是迅雷.flashget, 源源不断的带宽,防盗链绝对是当务之急. 使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效 ...

  5. nginx如何设置防盗链

    关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通 ...

  6. nginx服务器图片防盗链的方法

    nginx服务器图片防盗链的方法<pre> location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers *.shuche ...

  7. 【转】nginx如何设置防盗链

    转自博客园作者:howhy,文章地址:nginx如何设置防盗链.大佬写的甚好,在此备份一下 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底 ...

  8. Nginx 十大优化 与 防盗链

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Ngin ...

  9. nginx配置图片防盗链

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ expires 30d; access_log off; valid_referers none blocked ...

随机推荐

  1. 冲击BATZ!GitHub近8.3K+的Android进阶指南,面试再也不愁了

    过去十年是移动互联网蓬勃发展的黄金期,相信每个人也都享受到了移动互联网红利,在此期间,移动互联网经历了曙光期.成长期.成熟期.现在来说已经进入饱和期. 依然记得在 2010-2013 年期间,从事移动 ...

  2. Java 在PPT中插入OLE对象

    PPT幻灯片中支持将文档作为OLE对象插入到PPT幻灯片指定位置,在幻灯片中可直接点击该对象,打开或编辑等.下面以插入Excel工作簿文档为例,介绍如何来插入到幻灯片.   程序运行环境 编译环境:I ...

  3. CNVD-2021-14536 锐捷 RG-UAC 统一上网行为管理审计系统信息泄露漏洞

    漏洞简介 锐捷 RG-UAC 统一上网行为管理审计系统存在信息泄露,攻击者通过网页源代码可间接获取管理用户账号密码,登录管理后台. 漏洞复现 fofa搜索以下关键字 title="RG-UA ...

  4. Proxifier/ProxyChains+reGeorg组合进行内网代理

    在内网渗透过程中,我们经常使用sockes代理工具,本文主要介绍攻击机为windows和linux情况下得使用方式. Win:proxifier+reGeorg 组合 Linux:proxychain ...

  5. 007 PCI总线的桥与配置(二)

    一.PCI桥与PCI设备的配置空间 PCI设备都有独立的配置空间,HOST主桥通过配置读写总线事务访问这段空间.PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,P ...

  6. 从 FFmpeg 性能加速到端云一体媒体系统优化

    7 月 31 日,阿里云视频云受邀参加由开放原子开源基金会.Linux 基金会亚太区.开源中国共同举办的全球开源技术峰会 GOTC 2021 ,在大会的音视频性能优化专场上,分享了开源 FFmpeg ...

  7. BuildPack 打包

    无需 dockerfile,使用 buildpacks 打包镜像 书接上文,聪明如你已经发现项目中没有定义 dockerfile,但我们依然能打镜像,是如何做到的呢?正如上面提到的 gradle 的 ...

  8. 查看linux系统是物理机还是虚拟机

    物理机,返回机器型号 [root@laocalhost ~]# dmidecode -s system-product-name S910-X31E 虚拟机 [root@dev01-188 ~]# d ...

  9. 干货!4大实验项目,深度解析Tag在可观测性领域的最佳实践!

    Opentelemetry协议,是CNCF(Cloud Native Computing Foundation-云原生计算基金会)定义的最新一代的可观测规范(目前还在孵化中),该规范定义了可观测性的三 ...

  10. uwp 的】listView 选择

    xml 代码 ---------------------------------------------------------- <Page x:Class="ContentCont ...