Nginx防盗链和FPM模块优化

*爱你&永不变心* 提交于 2020-01-03 20:03:20

配置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页面
    [root@localhost ~]# cd /usr/local/nginx/
    [root@localhost nginx]# ls
    client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp
    conf              html          proxy_temp  scgi_temp
    [root@localhost nginx]# cd html/
    [root@localhost html]# ls
    50x.html  index.html  qq.jpg
    [root@localhost html]# mount.cifs //192.168.254.10/linuxs /abc
    Password for root@//192.168.254.10/linuxs:  
    [root@localhost html]# cd /abc
    [root@localhost abc]# ls
    error.png                         
    [root@localhost abc]# cp error.png /usr/local/nginx/html/
    [root@localhost abc]# cd -
    /usr/local/nginx/html
    [root@localhost html]# ls
    50x.html  error.png  index.html  qq.jpg
    [root@localhost html]# grep "qq.jpg" index.html 
    <img src="qq.jpg">
    [root@localhost html]# service nginx start 
    [root@localhost 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模块优化
    盗链成功,接下来做防盗链操作:

    [root@localhost 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服务

    [root@localhost named]# service nginx stop
    [root@localhost named]# service nginx start

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

  • 优化原因:服务器为云服务器,运行了个人论坛,内存为1.5G,fpm进程数为20,内存消耗近1G,处理比较慢
  • 优化参数调整
    FPM启动时有5个进程,最小空闲2个进程,最大空闲8个进程,最多可以有20个进程的存在
    [root@localhost ~]# 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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!