当前位置:首页 - Linux

linux Centos安装nginx时 支持通过GeoIP屏蔽国外ip安装及配置方法

作者:高景洋 日期:2023-05-11 10:18:26 浏览次数:1527

1、长话短说,依次执行以下命令

    yum install gcc-c++
    yum install -y pcre pcre-devel
    yum install -y zlib zlib-devel
    yum install -y openssl openssl-devel


2、直接下载.tar.gz安装包

    地址:https://nginx.org/en/download.html 选 Stable version 中间的 链接

     可以通过 wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

    或者先下载到本地,然后用 Put 上传到服务器

3、对压缩包解压 


    tar -zxvf nginx-1.18.0.tar.gz 
 cd nginx-1.18.0
 
-------GeoIP安装依赖项-------
a、通过 执行 yum search GeoIP 查找GeoIP相关包
先用 yum 查找 'GeoIP' 库,知道存在包 `GeoIP-devel.x86_64` 需要安装
b、执行 yum install -y GeoIP-devel.x86_64 安装GeoIP
--------------------
4、配置nginx 



     其实在 nginx-1.12.0 以后版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。


    1.使用默认配置

   ./configure

    2.如果nginx 需要支持https 

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module


    如果ngInx 需要支持https 又要支持GeoIP,则执行以下操作

   ./configure --prefix=/usr/local/nginx --with-http_ssl_module --prefix=/usr/local/nginx --with-http_geoip_module


    3.自定义配置(不推荐)

   ./configure \
   --prefix=/usr/local/nginx \
   --conf-path=/usr/local/nginx/conf/nginx.conf \
   --pid-path=/usr/local/nginx/conf/nginx.pid \
   --lock-path=/var/lock/nginx.lock \
   --error-log-path=/var/log/nginx/error.log \
   --http-log-path=/var/log/nginx/access.log \
   --with-http_gzip_static_module \
   --http-client-body-temp-path=/var/temp/nginx/client \
   --http-proxy-temp-path=/var/temp/nginx/proxy \
   --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
   --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
   --http-scgi-temp-path=/var/temp/nginx/scgi
 
 注:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
5、编译安装
 
 make 
 make install
5.1 执行 :/usr/local/nginx/sbin/nginx -V
 如果提示:configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module  
    则表示 nginx 已支持https
如果返回内容带GeoIP 字样,则表示已支持GeoIP
5.2、GeoIP配置
在nginx.conf http {} 中增加以下配置
  geoip_country /usr/share/GeoIP/GeoIP.dat;  
   map $geoip_country_code $allowed_country {
      default no;  #默认都拒绝
      CN yes;  #允许中国
      TW yes; #允许台湾,台湾也是中国的
      HK yes;  #中国香港
      MO yes;  #中国澳门
   }

在站点server中添加以下配置
 #判断是不是在拦截范围,是直接403,不让访问了 
         if ($allowed_country = no) {
                return 403;
         }
6、启停nginx

cd /usr/local/nginx/sbin/

 ./nginx 
  ./nginx -s stop
  ./nginx -s quit
  ./nginx -s reload
本文永久性链接:
<a href="http://r4.com.cn/art232.aspx">linux Centos安装nginx时 支持通过GeoIP屏蔽国外ip安装及配置方法</a>
当前header:Host: r4.com.cn X-Host1: r4.com.cn X-Host2: r4.com.cn X-Host3: 127.0.0.1:8080 X-Forwarded-For: 3.139.88.90 X-Real-Ip: 3.139.88.90 X-Domain: r4.com.cn X-Request: GET /art232.aspx HTTP/1.1 X-Request-Uri: /art232.aspx Connection: close Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) Accept-Encoding: gzip, br, zstd, deflate