Nginx防盗链和FPM模块优化

houjinkai 2020-01-03

配置nginx实现防盗链
在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失
nginx防盗链功能也非常强大。默认情况下,只需要进行简单的配置,即可实现放到链处理
实验环境
一台nginx服务器,一台测试客户机,一台盗链机
实验过程
1.nginx服务器上部署nginx服务
详细部署过程请查看:https://blog.51cto.com/14557905/2460945
Nginx防盗链和FPM模块优化
nginx部署成功!
2.配置盗链机
创建盗链机的网页
Nginx防盗链和FPM模块优化
除非用本地的域名去访问
如果匹配的是无效的,否则就跳转一个error.png页面
配置说明
  • valid_referers:设置信任的网站,即能引用相应图片的网站
  • none:浏览器中referer为空的情况,就是直接在浏览器访问图片
  • blocked:referer不为空的情况,但是值被代理或者防火墙删除了,这些值不以http://或者https://开头
  • 后面的网址或者域名referer中包含相关字符串的网址
  • if’语句:如果链接的来源域名不再valid_referers所列出的列表中,$invalid-referer为1,则执行后面的操作,即执行重写或返回403页面
    [ ~]# cd /usr/local/nginx/
    [ nginx]# ls
    client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp
    conf              html          proxy_temp  scgi_temp
    [ nginx]# cd html/
    [ html]# ls
    50x.html  index.html  qq.jpg
    [ html]# mount.cifs //192.168.254.10/linuxs /abc
    Password for //192.168.254.10/linuxs:  
    [ html]# cd /abc
    [ abc]# ls
    error.png                         
    [ abc]# cp error.png /usr/local/nginx/html/
    [ abc]# cd -
    /usr/local/nginx/html
    [ html]# ls
    50x.html  error.png  index.html  qq.jpg
    [ html]# grep "qq.jpg" index.html 
    <img src="qq.jpg">
    [ html]# service nginx start 
    [ html]# netstat -natp | grep 80
    tcp        0      0 192.168.247.193:80      0.0.0.0:*               LISTEN      3038/nginx: master

    Nginx防盗链和FPM模块优化
    使用域名,需要使用dns解析服务
    搭建dns详见我前面的博客
    然后指定盗链主机和客户机的dns服务器
    开始设置盗机
    在win10内打开控制面板,控制面板内打开程序和功能,里面有开启或者关闭功能,点击
    然后点击internet informatoion servers
    Nginx防盗链和FPM模块优化
    关闭盗机防火墙
    然后客户端去访问盗机网站
    Nginx防盗链和FPM模块优化
    Nginx防盗链和FPM模块优化
    盗链成功,接下来做防盗链操作:

    [ html]# vim /usr/local/nginx/conf/nginx.conf
    location ~*\.(jpg|gif|swf)$ {
       valid_referers none blocked *.shl.com shl.com;
        if ( $invalid_referer ) {
             rewrite ^/ http://www.shl.com/error.png;
       }
    }

    重启nginx服务

    [ named]# service nginx stop
    [ named]# service nginx start

    Nginx防盗链和FPM模块优化
    防盗链配置成功
    FPM优化参数调整示例

  • 优化原因:服务器为云服务器,运行了个人论坛,内存为1.5G,fpm进程数为20,内存消耗近1G,处理比较慢
  • 优化参数调整
    FPM启动时有5个进程,最小空闲2个进程,最大空闲8个进程,最多可以有20个进程的存在
    [ ~]# vim /usr/local/php/etc/php-fpm.conf
    pid = run/php-fpm.pid
    pm = dynamic
    pm.max_children=20
    pm.static_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8

相关推荐