Linux nginx 文件压缩 页面缓存 防盗链 访问控制(白名单,账号密码) 访问限制

文件压缩


ngx_http_gzip_module
启动该模块,使文件传输前进行压缩,提升传输效率。
启用压缩功能
http {  在http标签中启动该功能
gzip on;
gzip_http_version 1.1;
gzip_comp_level 5;   压缩等级 1-9
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; 
gzip_static on;     nginx对于静态文件的处理模块

systemctl restart nginx

页面缓存


无缓存,每次访问服务器,均是全文传输200/304。开启缓存可以加速浏览网站。
location ~.*\.(js|css|html|png|jpg)$
{
    expires    1d;
}

 

防盗链


ngx_http_referer_module
日志格式中的http_referer是记录,访问点引用的URL。也就是超链接的上一级地址。
通过这段地址,可以发现一种网络行为——盗链。非法盗链会影响站点的正常访问。
通过http_referer模块可以控制这一点。防止非法盗链现象。

server {
     listen    8081 ;
      server_name    liuyijing.com;

       location / {
        root    /liuyijing;
        index     index.html ;
valid_referers none  blocked *./liuyijing.com;
 if ($invalid_referer) {
  return 403;
 }
}


合法盗链
在if后面加上  server_name  192.168.184.*  ~\.google\. ~\.baidu\.想要的白名单即可

 

访问限制

请求频率限制:
ngx_http_limit_req_module  
可以选择下载压测工具包
yum install -y httpd-tools
定义:
 

vim /etc/nginx/nginx.conf
http {
    limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;     定义
    限制请求  二进制地址  限制策略的名称   占用10M空间  允许每秒1次请求

    server {
        location / {
            root  html;
            index index.html index.htm;
            limit_req zone=req_zone;          引用
            #limit_req zone=req_zone burst=5;             延迟请求不大于5
            #limit_req zone=req_zone burst=5 nodelay;     直接返回503
        }
    }
}


 启动请求频率限制
ab -n 100 -c 10 http:192.168.184.156

 

连接频率限制:

ngx_http_limit_conn_module  通过IP地址,限制链接(TCP)。

vim /etc/nginx/nginx.conf
http {
    limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
}
server {
    location / {
        ...
        limit_conn conn_zone 1;
    }
}  
单个IP,同时只允许有一个tcp连接

Nginx 访问控制


基于主机ip(白名单):
ngx_http_access_module   
Context: http, server, location, limit_except
限制主机访问
server {
  allow 192.168.192.156;         允许某些主机
  deny all;            拒绝全部主机
}

 

基于用户(账号密码):


ngx_http_auth_basic_module
方法一
    Syntax:     auth_basic string | off;
    Context: http, server, location, limit_except
方法二
    Syntax:     auth_basic_user_file file;
    Context: http, server, location, limit_except
这里使用方法二:
建立认证文件
yum install -y httpd-tools      生成秘钥的工具是由apache提供
htpasswd -cm /etc/nginx/conf.d/passwd user1   会话密码
htpasswd -m /etc/nginx/conf.d/passwd user2     会话密码
cat /etc/nginx/conf.d/passwd    观察口令文件是否生成。已生成
user10:$apr1$UE/tLtDM$nVm686kAMYb/ArqQDUi8U/
user20:$apr1$bmn0E/gK$enkXKb2V5uFvUy9wdIHlP.
启动认证
        server {
auth_basic "nginx access test!";                                提示消息
 auth_basic_user_file /etc/nginx/conf.d/passwd;     引用认证文件
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值