- 安装 geoip2 扩展依赖
首先,你需要安装 geoip2 扩展依赖。在终端中运行以下命令:
root@your_server:~# yum install libmaxminddb-devel -y
这将安装 libmaxminddb-devel 软件包,它是 geoip2 扩展依赖所必需的。 - 下载 ngx_http_geoip2_module 模块
接下来,你需要下载 ngx_http_geoip2_module 模块。在终端中运行以下命令:
root@your_server:~# git clone GitHub - leev/ngx_http_geoip2_module: Nginx GeoIP2 module
这将下载 ngx_http_geoip2_module 模块到你的服务器上。 - 解压模块到指定路径
解压模块到指定的路径。在终端中运行以下命令:
root@your_server:~# tar -xvf ngx_http_geoip2_module.tar.gz -C /usr/local/nginx/modules/
这将解压模块到 /usr/local/nginx/modules/ 目录下。 - 安装 nginx 模块
首先,你需要升级你的 nginx 到至少 1.18 版本,因为安装 ngx_http_geoip2 模块需要这个版本以上。在终端中运行以下命令:
root@your_server:~# nginx -v
如果你的 nginx 版本低于 1.18,你需要升级它。升级完成后,运行以下命令来编译安装 nginx 模块:
root@your_server:~# cd /usr/local/nginx/conf/
root@your_server:~# ./configure —with-http_geoip_module=dynamic —add-dynamic-module=/usr/local/nginx/modules/ngx_http_geoip2_module
root@your_server:~# make && make install
这将编译安装 ngx_http_geoip2 模块。 - 配置 Nginx 来禁止国外 IP 访问你的网站
打开 Nginx 的配置文件。通常,Nginx 的配置文件位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf。使用文本编辑器(如 vi 或 nano)打开配置文件。在配置文件中添加 IP 黑名单规则。在 http 部分中添加以下内容,用于定义 IP 黑名单:
http {
geoip_country /path/to/GeoIP.dat;
map $geoip_country_code $allowed_country {
default no;
CN yes;
}
}
这里的 /path/to/GeoIP.dat 是你下载的 GeoIP 数据文件的路径。你可以从 MaxMind 网站下载免费的 GeoIP 数据文件,其中包含国家和 IP 地址的映射关系。上述配置将所有国外 IP 地址(除了中国)都设置为不允许访问你的网站。如果你想要添加更多的国家或 IP 地址,你可以在 map 部分添加更多的规则。保存并关闭配置文件后,重新加载 Nginx 使配置生效:
root@your_server:~# service nginx reload
现在,你已经成功地使用 Nginx 来禁止国外 IP 访问你的网站了。只有中国的 IP 地址可以访问你的网站。如果你想要添加更多的国家或 IP 地址,只需在 map 部分添加相应的规则即可。
06-23
567
03-02
386
03-11
758
01-13
1733