美文网首页
Nginx如何安装模块和配置

Nginx如何安装模块和配置

作者: 不可思议的黄老师 | 来源:发表于2022-08-31 14:57 被阅读0次

    一、安装 geoip2 扩展依赖 libmaxminddb

    # 编译安装
    cd /usr/local/src
    wget https://github.com/maxmind/libmaxminddb/releases/download/1.6.0/libmaxminddb-1.6.0.tar.gz
    tar xf libmaxminddb-1.6.0.tar.gz
    cd libmaxminddb-1.6.0/
    ./configure && make && make install
    echo "/usr/local/lib" >> /etc/ld.so.conf
    ldconfig
    
    
    或者使用yum安装
    yum install libmaxminddb-devel -y
    

    二、下载 ngx_http_geoip2_module 模块

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

    三、安装 nginx 模块

    1、安装依赖

    yum -y install pcre-devel openssl-devel perl-devel libxml2
    

    2、下载编译安装

    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.22.0.tar.gz
    tar xf nginx-1.22.0.tar.gz
    cd nginx-1.22.0
    groupadd nginx
    useradd -g nginx nginx
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-pcre --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-http_ssl_module --with-stream --add-module=/usr/local/src/ngx_http_geoip2_module
    make
    make install
    
    扩展:
    如果用 动态模块
    ./configure  ...  --add-dynamic-module=/usr/local/src/ngx_http_geoip2_module
    后面在 nginx.conf 文件的http中,需要添加一行
    load_module /usr/lib64/nginx/modules/ngx_http_geoip2_module.so ; 
    

    备注:如果是重新编译nginx,只需要到 make 这一步,不需要执行 make installmake 好以后,把 objs/nginx 拷贝到 /usr/local/nginx/sbin/nginx ,重新启动即可。

    四、下载最新的 IP 地址数据库文件GeoLite2-Country.mmdb

    cd /usr/local/nginx/conf/
    mkdir geoip2
    cd geoip2
    wget https://github.com/P3TERX/GeoLite.mmdb/releases/download/2022.08.31/GeoLite2-Country.mmdb
    

    五、添加geoip访问策略

    1、在 http 中添加 几行,定义数据库文件位置

    http {
    ....
        geoip2 /usr/local/nginx/conf/geoip2/GeoLite2-Country.mmdb {
          auto_reload 5m ;
          $geoip2_country_code country iso_code;
        }
        map $geoip2_country_code $allowed_country {
          default yes;
          CN no;
        }
    
    ....
    }
    

    2、在server中添加

    #前端Nginx配置页面必须添加.
    server {
        listen 80;
        server_name xxx.xxx.com
        ....
    
        # 匹配国家代码定义为no的,禁止访问,返回403(上面定义中国的 iso_code 为no)
        if ( $allowed_country = no ) { return 403; }
        # 403错误跳转至指定二级页面
    
        error_page 404 403 500  = https://error.xxx.com/;
        ....
    }
    

    3、启动Nginx

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    

    相关文章

      网友评论

          本文标题:Nginx如何安装模块和配置

          本文链接:https://www.haomeiwen.com/subject/yrksnrtx.html