Nginx服务优化(七)网页压缩与防盗链

配置Nginx实现网页压缩功能

Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能,允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装。可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

压缩功能参数讲解

  1. gzip on:开启gzip压缩输出
  2. gzip_min_length 1k:用于设置允许压缩的页面最小字节数
  3. gzip_buffers 4 16k:表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
  4. zip_http_version 1.0:用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理最慢,也比较消耗服务器CPU资源
  5. gzip_comp_level 2:用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,使用默认即可
  6. gzip_types text/plain:压缩类型,是就对哪些网页文档启用压缩功能
  7. gzip_vary on:选项可以让前端的缓存服务器缓存经过gzip压缩的页面

1.关闭防火墙和增强性安全功能

[[email protected] ~]# systemctl stop firewalld.service    //关闭防火墙
[[email protected] ~]# setenforce 0   //关闭增强性安全功能
[[email protected] ~]# 

2.用win10虚拟机访问nginx服务,并用fiddler工具抓包(未开启压缩)

3.修改配置文件开启压缩功能

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x-javascript text/css image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javasrcipt application/json;
    gzip_disable "MSIE [1-6]\.";   //IE浏览器6版本以上开启压缩功能
    gzip_vary on;
[[email protected] ~]# service nginx restart    //重启服务
[[email protected] ~]# 

4.再次用win10虚拟机访问nginx服务,并用fiddler工具抓包(压缩功能开启)


配置Nginx实现防盗链

  • 在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失
  • Nginx防盗链功能也非常强大。默认情况下,只需要进行简单的配置,即可实现防盗链处理

1.将网站图片与防盗链图片复制到站点目录下

[[email protected] ~]# mkdir /mnt/tools
[[email protected] ~]# mount.cifs //192.168.100.50/tools /mnt/tools/
Password for [email protected]//192.168.100.50/tools:
[[email protected] ~]# cp /mnt/tools/forbid.png /usr/local/nginx/html/    //防盗链图片
[[email protected] ~]# cp picture.jpg /usr/local/nginx/html/    //网站图片
[[email protected] ~]# cd /usr/local/nginx/html/
[[email protected] html]# ls
50x.html  forbid.png  index.html  picture.jpg
[[email protected] html]# 

2.在首页文件添加图片引用

[[email protected] html]# vim index.html
<h1>Welcome to nginx!</h1>
<img src="picture.jpg"/>   //添加
[[email protected] html]# 

3.安装dns服务

[[email protected] html]# yum install bind -y
..........//省略安装过程
[[email protected] html]# 

4.修改主配置文件

[[email protected] html]# vim /etc/named.conf
options {
        listen-on port 53 { any; };   //将127.0.0.1改为any
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };   //将localhost改为any
[[email protected] html]# 

5.修改区域配置文件

[[email protected] html]# vim /etc/named.rfc1912.zones

zone "abc.com" IN {   //添加区域
type master;
file "abc.com.zone";
allow-update { none; };
};
[[email protected] html]#

6.修改区域数据配置文件

[[email protected] html]# cd /var/named/
[[email protected] named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[[email protected] named]# cp -p named.localhost abc.com.zone   //复制一份模板并重命名
[[email protected] named]#

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.131   //添加解析地址
[[email protected] named]# systemctl start named    //开启服务
[[email protected] named]#

7.在win10-1主机新建文本文档输入以下内容,并重命名为index.html

<html>
 <head>
  <title>盗链网站</title>
 </head>
 <body>
  <h1>this is test web</h1>
  <img src="http:www.abc.com/picture.jpg"/>   //盗链路径
 </body>
</html>


8.按下列步骤开启win10-1系统的web服务




9.将文件index.html移动到C盘的inetpub目录的子目录wwwroot下

10.分别将搭建盗链网站的win10-1主机和测试主机win10-2的dns地址改为Linux虚拟机地址

11.查看win10-1主机的IP地址

12.用win10-2主机分别访问nginx服务站点和win10-1主机的web服务,成功盗链nginx服务站点的图片


13.修改nginx服务配置文件,开启防盗链功能

[[email protected] named]# vim /usr/local/nginx/conf/nginx.conf

        location ~*\.(jpg|gif|swf)$ {
                valid_referers none blocked *.abc.com abc.com;
                if ( $invalid_referer ) {
                   rewrite ^/ http://www.abc.com/forbid.png;
                }
        }
[[email protected] named]# service nginx restart
[[email protected] named]#

14.再次用win10-2主机分别访问nginx服务站点和win10-1主机的web服务,成功开启防盗链功能

原文地址:https://blog.51cto.com/14449541/2451077

时间: 2024-10-12 11:51:20

Nginx服务优化(七)网页压缩与防盗链的相关文章

Nginx服务优化及优化深入

在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行参数配置,以达到最优的用户体验.默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. Ngnix服务的安装详细介绍请参考 部署Nginx网站服务实现访问状态统计以及访问控制功能 Nginx服务优化 可以从隐藏版本号.更改用户与组.配置网页缓存时间.日志切割.设置连接超时这几个方面进行优化. 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免

nginx服务优化大全

第18章 nginx服务优化 18.1 复习以前的nginx知识 18.1.1 复习nginx编译安装的3部曲 ./configure????????配置(开启/关闭功能),指定安装目录 make????????????软件编译,将源代码编译成二进制文件 make install????????将一些目录进行复制,修改,文件进行修改,查看的操作 18.1.2 编译安装常用的nginx命令 nginx -t????????????????????????????语法检查 nginx -s relo

Nginx服务优化之隐藏版本号、修改用户与组、配置页面缓存与时间、日志分割以及设置连接超时

Nginx服务优化之隐藏版本号.修改用户与组.配置页面缓存与时间.日志分割以及设置连接超时 前言 ? 在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行相应参数配置,以达到最优的用户体验. ? 默认的nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. 一.隐藏版本号 ? 我们为什么要隐藏版本号? ? 我们一定要有一个意识:对于软件或者说服务,其安全性必然不可能是无懈可击的,总会或多或少地存在各种bug或者

[超详细] Apache网页优化:网页压缩与网页缓存超详细

前言 前两篇文章讲了Aapche的访问控制与日志分析,这篇文章会重点讲Apache的网页优化,比如:网页的压缩.网页的缓存.我们在使用Aapche作为Web服务器的过程中,只有对Aapche服务器进行适当的优化配置,才能让它发挥出更好好的性能,因此,我们需要对Aapche服务器的配置优化! 网页压缩 凡是总会有个为什么,我们为什么要对网页进行压缩,带着这个问题来看接下来的操作.我们也常常上网,会知道网站的访问速度的快慢有很多因素,比如:应用程序的响应速度.网络带宽.服务器性能等!最重要的一个因素

企业级Web Nginx 服务优化(1)

企业级Web Nginx 服务优化 总结配置文件: nginx.conf httpd.conf httpd-vhosts httpd-mpm.conf my.cnf php.ini php-fpm.conf 1.1nginx.conf 配置文件基本参数优化 1.1.1 隐藏nginx header 内版本号信息 一些特定的系统及服务漏洞一般都和热定的软件及版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息),这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务器最大

企业级Web Nginx 服务优化

企业级Web Nginx 服务优化 http://blog.51cto.com/search/result?q=%E4%BC%81%E4%B8%9A%E7%BA%A7Web+Nginx+%E6%9C%8D%E5%8A%A1%E4%BC%98%E5%8C%96%285%29 企业级nginx服务优化合集 企业级nginx服务优化(一) 企业级nginx服务优化(二 ) 企业级Web Nginx 服务优化(1) 企业级Web Nginx 服务优化(2) 企业级Web Nginx 服务优化(3) 企业

用Nginx给网站做一个简单的防盗链

目录结构 Nginx防盗链配置 有些时候,大家不想让别人调用自己的图片,一是因为个人版权的问题,再一点就是会增加服务器的负载.还会产生一些没必要的流量. 其实在Nginx里面,很容易就做到防盗链的,在nginx.conf文件加入一个localtion配置项. 下面请看配置: location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ { valid_referers blocked www.qixing318.com qixing318.com; if ($inval

[Nginx]用Nginx实现与应用结合的访问控制 - 防盗链

应用场景:图片等资源需要设置权限,如:只有认证过的用户才能访问自己的图片. 解决办法:使用Nginx的防盗链模块http_secure_link可以实现,该模块默认情况下不包含,故在安装时要加上--with-http_secure_link_module 该模块根据两个参数控制权限访问,一个是过期时间(即该链接在这个时间之前可访问,过期后无法访问),该参数主要出于安全考虑. 另一个是通过md5算法算出来的KEY,一般通过uri计算 举例: server { listen 80; server_n

Nginx优化——连接超时,进程管理,压缩,防盗链(二)

Nginx实现连接超时 在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间 使用fiddler工具查看connection参数 超时参数 Keepalive_timeout设置连接保持超时时间,一般可只设置该参数,默认为65秒,可根据网站的情况设置,或者关闭,可在http段,server段,或者location段设置Client_header_timeout指定等待客户端发送请求头的超时时间Client_body_timeout设置请求体