2018-6-11

12.13 Nginx防盗链

12.14 Nginx访问控制

12.15 Nginx解析php相关配置

12.16 Nginx代理



12.13 Nginx防盗链

与日志记录和日期时间结合在一起


location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ //匹配*,后面正则不区分大小写

{

    expires 7d;

    valid_referers none blocked server_names  *.test.com ;

    if ($invalid_referer) {

        return 403;

    }

    access_log off;

}

image.png

不匹配403





12.14 Nginx访问控制

对于一些种要的内容,做一个白名单,只允许指定的IP能够访问

访问/admin/目录的请求,只允许某几个IP访问,配置:

location /admin/

{

    allow 192.168.133.1;

    allow 127.0.0.1;

    deny all;  //这三行 匹配到一行就不会继续往下匹配,所以deny要放最后

}

-t && -s reload

image.png

只有192.168.226.131或者127.0.0.1可以访问,测试过后为200 ,其他的为403


image.png

加上这一段 匹配正则 禁止解析php,针对正则做一些访问限制


根绝user_agent进行限制“

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')

{

      return 403;

}

deny all和return 403的效果一样

image.png




12.15 Nginx解析php相关配置

把配置放到配置文件里

location ~ \.php$

    {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/php-fcgi.sock; // fastcgi_pass 用来指定php-fpm监听的地址或者socke

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

    }

image.png

还没有加载配置文件


创建一个php测试

image.png

image.png

一开始不会解析,加载配置文件后就可以正常解析了


也可以监听端口,改成fastcgi_pass 127.0.0.1:9000;

 出现502的时候需要确定pass的地址是否对应了

image.png





12.16 Nginx代理

image.png

用户本来要访问web服务器,通过代理服务器访问私网。

还比如需要访问美国的服务器,太远,可以访问香港的服务器,通过代理。

cd /usr/local/nginx/conf/vhost

vim proxy.conf 

加入这些内容

image.png

server

{

    listen 80;

    server_name ask.apelearn.com;   //定义域名


    location /

    {

        proxy_pass      http://121.201.9.155/;    //通过这个IP可以访问到上面的域名

        proxy_set_header Host   $host;  

        proxy_set_header X-Real-IP      $remote_addr;  //指定ip

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

}

image.png



猜你喜欢

转载自blog.51cto.com/13646170/2130217