最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx禁止國(guó)外IP訪問我的網(wǎng)站的實(shí)現(xiàn)

 更新時(shí)間:2023年07月11日 15:01:46   作者:Young丶  
本文主要介紹了Nginx禁止國(guó)外IP訪問我的網(wǎng)站的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

先來(lái)說(shuō)說(shuō)為啥要寫這篇文章,之前看了下 Nginx 的訪問日志,發(fā)現(xiàn)每天有好多國(guó)外的 IP 地址來(lái)訪問我的網(wǎng)站,并且訪問的內(nèi)容基本上都是惡意的。因此我決定禁止國(guó)外 IP 來(lái)訪問我的網(wǎng)站。

想要實(shí)現(xiàn)這個(gè)功能有很多方法,下面我就來(lái)介紹基于 Nginx 的 ngx_http_geoip2 模塊來(lái)禁止國(guó)外 IP 訪問網(wǎng)站。

1. 安裝 geoip2 擴(kuò)展依賴:

yum install libmaxminddb-devel -y

2. 下載 ngx_http_geoip2_module 模塊:

 git clone https://github.com/leev/ngx_http_geoip2_module.git

3. 解壓模塊到指定路徑

我這里解壓到 /usr/local 目錄下:

# mv ngx_http_geoip2_module/ /usr/local/
# ll ngx_http_geoip2_module/
        total 60
        -rw-r--r-- 1 root root  1199 Aug 13 17:20 config
        -rw-r--r-- 1 root root  1311 Aug 13 17:20 LICENSE
        -rw-r--r-- 1 root root 23525 Aug 13 17:20 ngx_http_geoip2_module.c
        -rw-r--r-- 1 root root 21029 Aug 13 17:20 ngx_stream_geoip2_module.c
        -rw-r--r-- 1 root root  3640 Aug 13 17:20 README.md

4. 安裝 nginx 模塊

首先說(shuō)明下環(huán)境,我的 nginx 版本是 1.16,在網(wǎng)上查了下安裝 ngx_http_geoip2 模塊至少需要 1.18 版本及以上,因此此次安裝我是升級(jí) nginx1.18,添加 ngx_http_geoip2 模塊。

下載 nginx 1.18 版本:

# yum install libmaxminddb-devel -y

解壓 nginx1.18 軟件包,并升級(jí)為 nginx1.18,添加 ngx_http_geoip2 模塊。

需要注意:

  • 升級(jí) nginx,添加 nginx 模塊,只需要編譯,然后 make。不需要 make install,不然線上的 nginx 會(huì)被新版本 nginx 完完整整的替換掉。
  • 編譯前需要看下 nginx 當(dāng)前安裝了哪些模塊。
#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: –with-http_stub_status_module –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_ssl_module –with-stream

查看 nginx 版本,以及安裝的模塊:

# /usr/local/nginx/sbin/nginx -V
        nginx version: nginx/1.18.0
        built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
        built with OpenSSL 1.0.2k-fips 26 Jan 2017
        TLS SNI support enabled
        configure arguments: –with-http_stub_status_module –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_ssl_module –with-stream –add-module=/usr/local/ngx_http_geoip2_module

5. 下載最新的 IP 地址數(shù)據(jù)庫(kù)文件

模塊安裝成功后,還要在 Nginx 里指定數(shù)據(jù)庫(kù),在安裝運(yùn)行庫(kù)時(shí)默認(rèn)安裝了兩個(gè),位于 /usr/share/GeoIP/ 目錄下,一個(gè)只有 IPv4,一個(gè)包含 IPv4 和 IPv6。

登錄 www.maxmind.com 網(wǎng)址,創(chuàng)建賬戶,下載最新的庫(kù)文件。(賬戶創(chuàng)建就不演示了)點(diǎn)擊左側(cè),Download Files:

選擇 GeoLite2 Country,點(diǎn)擊 Download GZIP 下載即可:

上傳到 /usr/share/GeoIP/ 下并解壓:

# cd /usr/share/GeoIP/
# ll
total 69612
lrwxrwxrwx. 1 root root       17 Mar  7  2019 GeoIP.dat -> GeoIP-initial.dat
-rw-r--r--. 1 root root  1242574 Oct 30  2018 GeoIP-initial.dat
lrwxrwxrwx. 1 root root       19 Mar  7  2019 GeoIPv6.dat -> GeoIPv6-initial.dat
-rw-r--r--. 1 root root  2322773 Oct 30  2018 GeoIPv6-initial.dat
-rw-r--r--  1 root root  3981623 Aug 12 02:37 GeoLite2-Country.mmdb

6. 配置 nginx 配置文件

修改前先備份配置文件:

# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf-bak
# vim /usr/local/nginx/conf/nginx.conf

在 http 中添加幾行,定義數(shù)據(jù)庫(kù)文件位置:

geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
        auto_reload 5m;
        $geoip2_data_country_code country iso_code;
        }
        map $geoip2_data_country_code $allowed_country {
default yes;
        CN no;
        }

在 server 中的 location 下添加條件,如果滿足 IP 是國(guó)外 IP,就執(zhí)行下面的 return 動(dòng)作,我這里定義了 3 種,注釋了其中兩個(gè)。

當(dāng)訪問 IP 是國(guó)外 IP,直接返回 404:

修改完畢后,檢測(cè)下配置文件,重新加載下 nginx:

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload

7. 模擬測(cè)試驗(yàn)證

使用海外節(jié)點(diǎn)的服務(wù)器去訪問網(wǎng)站,這里我的 IP 是來(lái)自于韓國(guó):

圖片

可以看到訪問網(wǎng)站報(bào)錯(cuò) 404 Not Found:

圖片

我們?cè)賮?lái)看下 nginx 的訪問日志:

“13.125.1.194 – – [14/Aug/2020:16:15:51 +0800] “GET /favicon.ico HTTP/1.1” 404 548 “https://www.fxkjnj.com/” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36”

圖片

到此這篇關(guān)于Nginx禁止國(guó)外IP訪問我的網(wǎng)站的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx禁止國(guó)外IP訪問內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx部署HTTP/3的實(shí)現(xiàn)步驟

    Nginx部署HTTP/3的實(shí)現(xiàn)步驟

    本文介紹了在Nginx中部署HTTP/3的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • Nginx進(jìn)程調(diào)度問題詳解

    Nginx進(jìn)程調(diào)度問題詳解

    Nginx采用的是固定數(shù)量的多進(jìn)程模型,由一個(gè)主進(jìn)程(MasterProcess)和數(shù)量與主機(jī)CPU核數(shù)相同的工作進(jìn)程協(xié)同處理各種事件。這篇文章主要介紹了Nginx進(jìn)程調(diào)度問題,需要的朋友可以參考下
    2021-09-09
  • Nginx請(qǐng)求頭丟失的問題解決

    Nginx請(qǐng)求頭丟失的問題解決

    本文主要介紹了在使用Nginx進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)時(shí),遇到請(qǐng)求頭參數(shù)丟失的問題,導(dǎo)致的原因可能是api_key_id和api_key_value這2個(gè)參數(shù)傳遞過程中丟失或則根本沒傳遞,下面就來(lái)具體介紹一下
    2024-12-12
  • 服務(wù)器報(bào)錯(cuò)nginx?502?Bad?Gateway的原因及如何解決詳解

    服務(wù)器報(bào)錯(cuò)nginx?502?Bad?Gateway的原因及如何解決詳解

    項(xiàng)目啟動(dòng)時(shí)莫名其妙網(wǎng)站訪問不了,502 Bad Gateway,下面這篇文章主要給大家介紹了關(guān)于服務(wù)器報(bào)錯(cuò)nginx?502?Bad?Gateway的原因及如何解決的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Nginx配置文件nginx.conf詳細(xì)說(shuō)明

    Nginx配置文件nginx.conf詳細(xì)說(shuō)明

    本篇文章主要介紹了Nginx配置文件nginx.conf詳細(xì)說(shuō)明,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-01-01
  • Nginx概述、命令、配置文件和具體應(yīng)用詳解

    Nginx概述、命令、配置文件和具體應(yīng)用詳解

    Nginx是一款輕量級(jí)的web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,這篇文章主要介紹了Nginx概述、命令、配置文件和具體應(yīng)用,需要的朋友可以參考下
    2023-08-08
  • nginx+lua+redis 灰度發(fā)布實(shí)現(xiàn)方案

    nginx+lua+redis 灰度發(fā)布實(shí)現(xiàn)方案

    在微服務(wù)化進(jìn)程中,利用nginx+lua+redis實(shí)現(xiàn)灰度發(fā)布至關(guān)重要,,通過nginx+lua反向代理,根據(jù)客戶端ip進(jìn)行路由控制,配合redis存儲(chǔ)允許訪問微服務(wù)的ip地址,可以有效地進(jìn)行用戶分流,感興趣的可以了解一下
    2024-10-10
  • 一文詳解Nginx中l(wèi)ocation的使用方法

    一文詳解Nginx中l(wèi)ocation的使用方法

    本篇博客介紹了nginx的核心配置模塊中的location部分的詳解,包括location的語(yǔ)法規(guī)則(=? ^~? ~? ~*? 不帶符號(hào)? \)的功能、用法以及詳細(xì)的示例,通過本篇博客可以加深對(duì)location的使用的理解,需要的朋友可以參考下
    2026-04-04
  • Nginx靜態(tài)壓縮和代碼壓縮提高訪問速度詳解

    Nginx靜態(tài)壓縮和代碼壓縮提高訪問速度詳解

    Nginx提供靜態(tài)壓縮功能,對(duì)于比較大的文件,可以自動(dòng)默認(rèn)查找.gz后綴的壓縮包,下面這篇文章主要給大家介紹了關(guān)于Nginx靜態(tài)壓縮和代碼壓縮提高訪問速度的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Nginx+PHP(FastCGI)搭建高并發(fā)WEB服務(wù)器(自動(dòng)安裝腳本)第二版

    Nginx+PHP(FastCGI)搭建高并發(fā)WEB服務(wù)器(自動(dòng)安裝腳本)第二版

    Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建勝過Apache十倍的Web服務(wù)器(第5版) 編寫
    2011-04-04

最新評(píng)論

哈巴河县| 中西区| 黔西县| 镇坪县| 通山县| 卫辉市| 高碑店市| 安丘市| 图木舒克市| 无极县| 黄龙县| 镇远县| 黄梅县| 柳河县| 柞水县| 公安县| 绥芬河市| 西平县| 房山区| 肃宁县| 长海县| 奎屯市| 武平县| 潮州市| 涟水县| 中西区| 绥德县| 合川市| 赤峰市| 耒阳市| 西丰县| 贡山| 车险| 广东省| 定远县| 海晏县| 宁波市| 临西县| 光泽县| 大荔县| 顺平县|