Nginx配置使用GeoIP2模块

news/2024/10/30 13:32:58/

一、Nginx简介

Nginx(engine x)是一个免费的、开源的、高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

Nginx的特点是:占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、GeoIP2简介

GeoLite2 数据库由几部分组成:GeoLite2 国家库、GeoLite2 城市库和 Geolite2 ASN。他们分别满足不同的功能,GeoLite2 国家库仅能查询 IP 地址所在的国家和洲;GeoLite2 城市库可以查询到 IP 地址所在的国家、地区、城市、经纬度和邮政编码等信息;Geolite2 ASN 用于查询IP地址所属的自治域 AS 或者运营商 ISP。

GeoLite2 离线数据库每月更新一次,可以通过官方网站下载 MaxMind DB 格式的压缩文件。MaxMind 提供支持 7 种编程语言或软件的 API 支持,包括 C#、C、Java、Perl、PHP、Python、Apache(mod_maxminddb)。还有许多第三方 API 支持更多种编程语言或软件。GeoLite2 支持包括英语、汉语、俄语、日语和西班牙语等在内的多种语言。

三、安装libmaxminddb

官方下载地址:https://github.com/maxmind/libmaxminddb/releases

1.下载libmaxminddb安装包

wget https://github.com/maxmind/libmaxminddb/releases/download/1.7.1/libmaxminddb-1.7.1.tar.gz

2.解压

tar xf libmaxminddb-1.7.1.tar.gz

3.预编译

cd libmaxminddb-1.7.1
./configure

4.编译及安装

make && make install

5.配置动态库

echo "/usr/local/lib" >> /etc/ld.so.conf

6.加载动态库

ldconfig

四、下载GeoIP2模块

官方下载地址:https://github.com/leev/ngx_http_geoip2_module/releases

1.这里下载3.4版本

cd ~ && wget https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/3.4.tar.gz
tar xf 3.4.tar.gz -C /usr/local

五、安装GeoIP2模块的Country和City数据库

官方下载地址:https://www.maxmind.com

1、登录maxmind,登录成功后选择Download Files下载

在这里插入图片描述

2、这里下载2023-05-05最新版本

在这里插入图片描述

六、安装Nginx

官方下载地址:http://nginx.org/en/download.html

1、下载Nginx软件包

wget -c http://nginx.org/download/nginx-1.24.0.tar.gz

2、解压

tar xf nginx-1.24.0.tar.gz

3、预编译&&编译

cd  nginx-1.24.0
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-pcre --with-http_gzip_static_module --with-http_realip_module --add-module=/usr/local/ngx_http_geoip2_module-3.4
make

http://www.ppmy.cn/news/60394.html

相关文章

SpringBoot整合Mybatis-Plus、Jwt实现登录token设置

Spring Boot整合Mybatis-plus实现登录常常需要使用JWT来生成用户的token并设置用户权限的拦截器。本文将为您介绍JWT的核心讲解、示例代码和使用规范,以及如何实现token的生成和拦截器的使用。 一、JWT的核心讲解 JWT(JSON Web Token)是一种…

认识机器学习与深度学习

目录 1. 认识机器学习 1.1 什么是机器学习? 1.2 机器学习可以解决的问题 1.3 机器学习的基础知识 2. 认识深度学习 2.1 什么是深度学习? 2.2 深度学习能做什么? 2.3 深度学习的基础知识 2.4 深度学习的神经网络种类 3. 总结 1. 认识…

mysql UNION ALL

UNION ALL 操作符可以连接两张字段不同的表,但是连接前需要满足以下条件: - 两张表的列数必须相同 - 两张表对应的列的数据类型必须兼容 如果以上条件不满足,则在进行联合操作时会发生错误。在进行联合操作时,如果表A的字段和表…

Vue.js核心概念简介:组件、数据绑定、指令和事件处理

本文介绍了Vue.js的四个核心概念:组件、数据绑定、指令和事件处理。每个概念都通过一个简单的示例进行了详细的解释。通过学习这些概念,您将能够充分利用Vue.js的强大功能,构建高效、灵活的Web应用程序。 1 组件 组件是Vue.js的核心概念之一…

体验 Dolly V2

体验 Dolly V2 1. 什么是 Dolly V22. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 部署 Dolly V26. 编写测试程序7. 运行测试程序 1. 什么是 Dolly V2 Databricks的dolly-v2-12b,是一个在 Databricks 机器学习平台上训练的指令跟随型大型语言模型,…

自动化测试工具的基本原理以及应用场景

自动化测试工具是现代软件开发流程中必不可少的组成部分,它可以通过编写脚本或使用图形用户界面工具自动化测试过程,提高测试的效率和准确性。本文将介绍自动化测试工具的基本原理以及应用场景。 自动化测试工具的基本原理 自动化测试工具通常采用的原理…

Dart语法下

十三、Dart中的范型 13.1 范型方法 通俗理解: 范型就是解决类、接口、方法的复用性,以及对不特定数据类型的支持(类型校验) 案例1: 定义一个函数只能返回String类型的数据 String getStringData(String value){return value; } 案例2: 同时支持返回String和int类型 Str…

算法 DAY45 动态规划07 70. 爬楼梯 322. 零钱兑换 279. 完全平方数 139. 单词拆分 多重背包

70. 爬楼梯 和377. 组合总和 Ⅳ (opens new window)基本就是一道题了。本题代码不长&#xff0c;题目也很普通&#xff0c;但稍稍一进阶就可以考察完全背包 class Solution { public:int climbStairs(int n) {vector<int> nums {1,2};vector<int> dp(n1,0);dp[0…