这里介绍一些最新或者理解起来有一些难度的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

把代理切换到国外后访问

Nginx详解十九:Nginx深度学习篇之进阶高级模块的更多相关文章

  1. Nginx详解十:Nginx场景实践篇之Nginx静态资源场景配置

    一.静态资源WEB服务 1.静态资源类型:非服务器动态运行生成的文件 2.静态资源服务场景-CDN 假设静态资源存储中心在云南,用户在北京去请求一个文件,那么就会造成一个传输的延时,而如果Nginx同 ...

  2. Nginx详解十八:Nginx深度学习篇之Rewrite规则

    Rewrite规则可以实现对url的重写,以及重定向 作用场景: 1.URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等 2.SEO优化 3.维护:后台维护.流量转发等 4.安全 配置语 ...

  3. Nginx详解十七:Nginx深度学习篇之动静分离

    动静分离:通过中间件将动态请求和静态请求分离 作用:分离资源,减少不必要的请求消耗,减少请求延时 动静分离还有个好处就是,当动态请求的后端服务出问题了,只会影响动态的部分,静态资源不影响,照样加载 如 ...

  4. Nginx详解十六:Nginx场景实践篇之缓存服务

    缓存类型: 服务端缓存 代理缓存 客户端缓存 Nginx代理缓存 配置语法 使用之前需要先定义一个proxy_cache_path配置语法:proxy_cache_path path [levels= ...

  5. Nginx详解十五:Nginx场景实践篇之负载均衡

    负载均衡 GSLB(全局的负载均衡,往往是以国家为单位,或者以省为单位) SLB Nginx就是一个典型的SLB模型, 分为四层负载均衡和七层负载均衡 七层负载均衡可以处理应用层,如thhp信息,Ng ...

  6. Nginx详解十四:Nginx场景实践篇之代理服务

    代理的作用 Nginx代理 正向代理 反向代理 正向代理和反向代理的区别:代理的对象不一样 正向代理代理的对象是客户端,反向代理代理的对象是服务端 反向代理: 配置语法:proxy_pass URL; ...

  7. 学习《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF代码

    <深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供了一些工具,很实用. <大数据架构 ...

  8. Nginx详解十三:Nginx场景实践篇之防盗链

    防盗链: 目的:防止资源被盗用 防盗链设置思路 首要方式:区别哪些请求是非正常的用户请求 基于http_refer防盗链配置模块(判断refer(上一步的链接)信息是否为允许访问的网站) 配置语法:v ...

  9. Nginx详解十一:Nginx场景实践篇之Nginx缓存

    浏览器缓存: HTTP协议定义的缓存机制(如:Expires.Cache-control等) 当浏览器第一次请求的时候,浏览器是没有缓存的 第二次请求开始就有缓存了 校验过期机制 配置语法-expir ...

随机推荐

  1. python web cgi

    知识详解: cgi:通用网关接口,网络脚本的解析 python cgi 自带有cgi轻量级服务器,我们通过cgi命令可以开启该服务器 python2 python -m CGIHTTPServer p ...

  2. 黑马程序员_超全面的JavaWeb视频教程vedio--.ppt,.pptx,.doc,.txt,.docx列表

    \JavaWeb视频教程_day1-资料源码\day01-html目录.txt;\JavaWeb视频教程_day1-资料源码\PPT\HTML.ppt;\JavaWeb视频教程_day1-资料源码\资 ...

  3. Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装

    说明在前:本人用过的 luna  mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...

  4. 《2013传智播客视频》-wmv,avi,mp4.目录

    \!--14俄罗斯方块\视频\.复习.avi; \!--14俄罗斯方块\视频\ 复习.avi; \!--14俄罗斯方块\视频\ 形状旋转.avi; \!--14俄罗斯方块\视频\ 判断形状能否变形.a ...

  5. openstack Q版部署-----nova服务配置-控制节点(5)

    一.创建数据库(控制节点) 创建数据库以及用户: CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_cell0; ...

  6. MySQL绿色版安装整套流程

    https://www.cnblogs.com/LiuChunfu/p/6426918.html

  7. QR 编码原理(二)

    编码就是把常见的数字.字符等转换成QR码的方法.说具体的编码之前,先说一下QR码的最大容量问题. 一.最大容量 QR码的最大容量取决于选择的版本.纠错级别和编码模式(Mode:数字.字符.多字节字符等 ...

  8. 【VMware vSphere】ESXi系统设置静态IP

    写在前面:           为了方便管理,一般将ESXi系统的IP设置为静态           ESXi6.5系统和6.0系统类似,这里以ESXi6.0系统为例           1, 进入系 ...

  9. 工程师死绝的世界答案-python3版

    エンジニアが死滅シタ世界|アンドロイドとふたりぼっちで生きろ. 荒れ果てた警察署 [MISSION LEVEL: D] 难度D 题目要求: あなたは 0 から 9 の数字を 3 つ入力すると開く扉を開 ...

  10. 设计模式C++学习笔记之三(Singleton单例模式)

    单例模式看起来也蛮简单的,就是在系统中只允许产生这个类的一个实例,既然这么简单,就直接贴代码了.更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com. 3.1.解释 main ...