首页
登录 | 注册

nginx根据user_agent做访问控制

if ($http_user_agent ~ 'curl|baidu|1111')
    {
       return 403;
    }

如果user_agent是curl,baidu,1111,那么就不能访问网站:

整个配置文件如下:

server
{
    listen      80;
    server_name www.test.com  www.123.com;
    index       index.html index.htm index.php;
    root        /data/www;
    access_log  /tmp/logs/access_log  test; 

    if ($host != 'www.test.com') {
        rewrite ^/(.*)$ http://www.test.com/$1 permanent;
    }


    location ~ .*forum\.php$ {

        auth_basic             "auth";
        auth_basic_user_file  /usr/local/nginx/conf/htpasswd;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }
   
    #user_agent设置
    if ($http_user_agent ~ 'curl|baidu|1111')
    {
       return 403;
    }
 
    location ~ .*\.(gif|jpg|png|jpeg|bmp|swf)$ {
        expires     15d;
        access_log  off;
      #防盗链设置如下
        valid_referers none blocked *.test.com *.123.com;
        if ($invalid_referer) {
        return 403;
        }       
    }

    location ~ \.php$ { 
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
    }

}

加载配置文件,可以用curl来模拟用户标识:

-A 后面跟上模拟的用户标识
[[email protected] vhosts]# curl -A "1111" -x127.0.0.1:80 http://www.test.com -I  
HTTP/1.1 403 Forbidden
Server: nginx/1.4.4
Date: Wed, 04 Jan 2017 06:50:45 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive

[[email protected] vhosts]# curl -A "gfdgsfdg" -x127.0.0.1:80 http://www.test.com -I  #未被设置,可以访问
HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.4
Date: Wed, 04 Jan 2017 06:50:52 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.27
location: forum.php

[[email protected] vhosts]# curl -A "baidu" -x127.0.0.1:80 http://www.test.com -I
HTTP/1.1 403 Forbidden
Server: nginx/1.4.4
Date: Wed, 04 Jan 2017 06:51:09 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive

[[email protected] vhosts]# curl  -x127.0.0.1:80 http://www.test.com -I   #默认标识为curl
HTTP/1.1 403 Forbidden
Server: nginx/1.4.4
Date: Wed, 04 Jan 2017 06:51:18 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive

[[email protected] vhosts]# curl -A "gavafddafsv"  -x127.0.0.1:80 http://www.test.com -I  #可以访问
HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.4
Date: Wed, 04 Jan 2017 06:51:29 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.27
location: forum.php



相关文章

  • Tomcat主配置文件Server.xml详解1.软件版本[[email protected] META-INF]# java -version java version "1.8.0_60" Java(TM) SE Runtime E ...
  •   实验环境  CentOS 7, lamp (php-fpm)要求:(1) 三者分离于三台主机:         (2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress:         (3) xca ...
  • 建立nginx服务器,要求: 1)通过8080端口提供服务: 2)提供两个基于名称的虚拟主机(都通过8080端口提供服务): (a)www1.magedu.com:8080,页面文件目录为/www/html/www1:错误日志为/var/l ...
  • Java体系结构包括四个独立但相关的技术:Java程序设计语言Java class文件格式Java APIJava VMTomcat不是一个完整意义上的Jave EE服务器,它甚至都没有提供对哪怕是一个主要Java EE API的实现:但由 ...
  • 为什么要用SpringBoot? SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式 ...
  • nginx中的rewrite语句
    rewrite命令使用正则表达式来匹配请求URI,被匹配到的URI将会被重写,可以实现内部URL重写或URL重定向.rewrite命令可以出现在server.location.if语句块中.多个rewrite语句按照它们在配置文件中出现的位 ...

2019 jeepyurongfu.net webmaster#jeepyurongfu.net
12 q. 0.022 s.
京ICP备10005923号