在nginx中使用geoip做区域限制的方法
2019-08-30 14:12
1641 查看
该博客为工作笔记
环境:
nginx version: nginx/1.14.0
centos version: centos7
需求如下:
通过IP区别国内或国外,从而跳转到不同的页面,最终用nginx的第三方module:geoip来实现,这就不说它的优势了,网上很多解释,下面看怎么配置
我的系统中是配置了nignx.repo的,我直接用yum来安装了geoip模块,没有用添加模块重编的方式
yum install nginx-module-geoip
下载geoip的数据库文件
cd /etc/nginx mkdir geoipdat cd geoipdat 下载 wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 解压 gunzip GeoIP.dat.gz gunzip GeoLiteCity.dat.gz
根据需求配置nginx
首先在nginx.conf中加载geoip的库,配置如下:
load_module "modules/ngx_http_geoip_module.so"; load_module "modules/ngx_stream_geoip_module.so"; user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
配置虚拟主机如下:
geoip_country /etc/nginx/geoipdat/GeoIP.dat; geoip_city /etc/nginx/geoipdat/GeoLiteCity.dat; server { listen 80; server_name localhost; location / { root /opt; if ($geoip_country_code = CN){ rewrite (.*) /zh$1 break; } rewrite (.*) /en$1 break; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
opt目录如下
[root@VM_0_15_centos opt]# tree . | └── en │ └── index.html └── zh └── index.html
上面只是简单配置一下。。。。
以上这篇在nginx中使用geoip做区域限制的方法就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 注册表限制使用U盘的几种方法
- C#中使用where子句限制泛型方法的泛型类型
- 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
- 注册表限制使用U盘的几种方法
- c语言程序的存储区域与const关键字的使用方法
- 《Oracle EXP工具QUERY参数使用方法和限制条件》-使用场景-对比测试
- 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
- 限制root使用telnet登錄的方法(保留/etc/securetty不變,如何想增加,在此文件后加pts/n...)
- WinCE6.0 Platform Builder有试用时间限制,使用此方法破解限制。
- nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用详解
- nginx变量使用方法详解(5)
- 基于nginx实现缓存功能及uptream模块详细使用方法
- 网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)
- 使用Nginx+uWSGI+Django方法部署Django程序(上)
- 系统方法实现仿微信、支付宝二维码扫描 实现 (限制扫描区域、相机背景)
- VC6.0显示行号插件(含使用方法、注册方法,无使用限制)
- 关于使用keepalived后nginx日志中的健康日志清除方法
- c语言程序的存储区域与const关键字的使用方法
- nginx服务器使用ie下载apk变zip的解决方法
- PHP和Nginx 文件上传大小限制问题解决方法