zoukankan      html  css  js  c++  java
  • Nginx详解十九:Nginx深度学习篇之进阶高级模块

    这里介绍一些最新或者理解起来有一些难度的Nginx模块

    一、secure_link_module模块作用原理:
    1、制定并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问
    2、限制链接生效周期

    配置语法:secure_link expression;
    默认状态:-
    配置方法:http、server、location

    配置语法:secure_link_md5 expression;
    默认状态:-
    配置方法:http、server、location

    二、secure_link模块实现请求资源验证

    首先确认安装的时候已经编译了此模块

    准备好一个配置文件

    server {
    listen 80;
    server_name localhost;
    #charset koi8-r;
    #access_log /var/log/nginx/log/host.access.log main;
    root /opt/app/code;
    location / {
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 "$secure_link_expires$uri imooc";
    if ($secure_link = "") {
    return 403;
    }
    if ($secure_link = "0") {
    return 410;
    }
    }

    在/opt/app/code/download下准备一个文件用于下载

    找一个md5加密的文件放在/opt/work下,这里如果没有的openssl命令话需要用yum安装

    执行文件,并把生成的链接用浏览器打开:

    文件开始下载

     

    如果传的错误的参数时,会返回403

    geoip_module模块
    基于IP地址匹配MaxMind GeoIP二进制文件,读取IP所在地域信息

    使用场景
    1、区别国内国外作HTTP访问规则
    2、区别国内城市地域作HTTP访问规则


    需要yum安装:yum install nginx-module-geoip

    安装完成后,会在/etc/nginx/modules/下生成对应文件

    geoip读取地域信息场景展示

    执行命令下载国家和城市ip地址信息,下载完后解压

    wget http://geolite.maxmind.com/dowmload/geoip/database/GeoLiteCountry/GeoIP.dat.gz
    wget http://geolite.maxmind.com/dowmload/geoip/database/GeoLiteCity.dat.gz

    准备一个conf文件

    geoip_country /etc/nginx/geoip/GeoIP.dat;
    geoip_city /etc/nginx/geoip/GeoLiteCity.dat;
    server {
    listen 80;
    server_name localhost;

    #charset koi8-r;
    #access_log /var/log/nginx/log/host.access.log main;

    location / {
    if ($geoip_country_code != CN) {
    return 403;
    }
    root /usr/share/nginx/html;
    index index.html index.htm;
    }

    location /myip {
    default_type text/plain;
    return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city";
    }

    浏览器访问服务器地址,就可以看到当前出口的地址,有代理是,展示的是配置后代理的地址

    上面已经配置了,当ip不是CN(中国)的时候,返回403

    把代理切换到国外后访问

  • 相关阅读:
    本周四,CODING DevOps 深度解析系列最后一课等你来
    CODING DevOps 深度解析系列第二课报名倒计时!
    9 月 22 日,CODING DevOps 深度解析系列第一课线上开讲!
    9 月直播课预告 | CODING DevOps 深度解析系列上线啦
    LNMP Wordpress phpMyAdmin的部署记录
    在centos上部署docker与wordpress
    flask项目集成swagger
    windows局域网搭建本地git代码版本管理仓库
    docker部署的经验
    现有 Vue.js 项目快速实现多语言切换的一种思路
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/10527551.html
Copyright © 2011-2022 走看看