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
把代理切换到国外后访问