亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Nginx限制特定IP訪問自己的網(wǎng)站實現(xiàn)的幾種方法

 更新時間:2024年12月22日 09:24:44   作者:fj_changing  
本文主要介紹了使用Nginx限制特定IP訪問自己的網(wǎng)站的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

需求

一個網(wǎng)站只想被國內(nèi)訪問,或者只想被一個省或一個市訪問,或者只允許特定的IP或IP段訪問,或者禁止特定的IP或IP段訪問。我知道的有三個方法:

  • 購買云服務(wù)器廠商的相關(guān)服務(wù),它們能做到,結(jié)果相對準(zhǔn)確;
  • 購買查詢IP的網(wǎng)站的服務(wù),寫個中間件,自己的網(wǎng)站收到請求時根據(jù)IP去查歸屬地,然后根據(jù)業(yè)務(wù)需要直接允許或阻止本次請求,結(jié)果相對準(zhǔn)確,但每次收到請求都去查詢的話費用較高;
  • 購買離線的IP庫,在Nginx中做配置,結(jié)果相對不準(zhǔn)確,一次性付費,后續(xù)更新另外付費。

云服務(wù)器廠商的服務(wù)和查詢IP的網(wǎng)站的服務(wù),相對來說更準(zhǔn)確,IP數(shù)量更完整,更新更及時;離線的IP庫,由于數(shù)據(jù)源未知,相對來說不準(zhǔn)確,IP數(shù)量不完整,更新不一定及時。

使用Nginx實現(xiàn)

 我用了寶塔,網(wǎng)站里添加了多個站點,每個站點都單獨配置。

以內(nèi)網(wǎng)IP為例,公網(wǎng)IP同理。以下配置都寫在Nginx配置的server塊中(也可以寫在location中),IP支持一個一個寫,也支持CIDR形式,公網(wǎng)IP的CIDR形式可以在ip138上查,準(zhǔn)確性不知道。已知具體的IP段,有網(wǎng)站在線轉(zhuǎn)換成CIDR形式,但我發(fā)現(xiàn)不同的網(wǎng)站轉(zhuǎn)出的結(jié)果不同,最好還是手動計算驗證下。

只允許192.168.1.X的IP訪問,其他IP禁止訪問。deny all;不能寫在allow前面,會導(dǎo)致阻止所有的訪問。

allow 192.168.1.1/24;
deny all;

禁止192.168.1.1、192.168.1.2、192.168.1.3訪問,允許其他IP訪問。

deny 192.168.1.1;
deny 192.168.1.2;
deny 192.168.1.3;
allow all;

被阻止訪問時,頁面顯示403 Forbidden。

如果有大量的IP需要寫,可以將上面的語句寫在文件里,然后在server塊中導(dǎo)入這個文件。這樣在同一個服務(wù)器中有多個站點都需要這個同樣的配置時,容易維護(hù),后面更新IP只需要更新這個文件的內(nèi)容,不用把每個站點的Nginx配置都改一遍。更新文件中的IP后,需重載Nginx配置才生效。

include /home/ip_limit/ip_limit.conf;

自定義403頁面

403頁面可以自定義,同樣是在Nginx配置的server塊中(也可以寫在location中)。將頁面寫在/home/ip_limit/403_my.html,這個html中如果有圖片,最好寫死成base64,原因后面再說。最好不要用403.html這個文件名,可能和網(wǎng)站根目錄中寶塔自動生成的默認(rèn)403頁面沖突,導(dǎo)致自定義403頁面不生效。

我的網(wǎng)站只允許指定城市訪問,所以Nginx中我配置了allow xxx和deny all;,這樣會導(dǎo)致在其他城市訪問時還是403 Forbidden,自定義的403頁面不生效,所以需要單獨設(shè)置這個自定義403頁面為允許所有的訪問。

error_page 403 /403_my.html;
location /403_my.html {
  allow all;  #不加會由于前面的allow和deny all導(dǎo)致阻止加載這個自定義的403頁面,從而自定義403頁面不生效
  root /home/ip_limit;
  internal;  # 防止直接訪問這個頁面,不加也行
}

403頁面中的圖片問題

做完上面的配置后,如果自定義403頁面中的圖片不是寫死成base64,會發(fā)現(xiàn)被阻止訪問時,頁面中的圖片沒加載出來(img標(biāo)簽中src="./403.png"),然后查了資料在Nginx配置的server塊中加了下面的內(nèi)容,這樣自定義403頁面中的圖片確實可以加載了(前提是這個圖片在這里的root處設(shè)置的路徑中,同理src的值也要做相應(yīng)的調(diào)整),但正常訪問網(wǎng)站時有的圖片無法加載了??赡芤蜻@個設(shè)置導(dǎo)致網(wǎng)站的所有圖片都從這里設(shè)置的路徑中加載,但實際無法加載的圖片沒存放在這里。所以這個配置不具有通用性,還有個方法我沒試,就是不加這個配置,把自定義403頁面中的圖片的src換成一個可加載的網(wǎng)絡(luò)url。

location ~ .*\.(png|jpg|jpeg|gif|svg|ico){
  allow all;
  root /www/wwwroot/test/web;
}

最簡單省事的方法是,不加這個配置,自定義403頁面中的圖片寫死成base64。

允許所有人訪問網(wǎng)站中的靜態(tài)文件

我的網(wǎng)站只允許指定城市訪問,但網(wǎng)站中提供一些靜態(tài)文件可供所有人訪問或下載,同樣是在Nginx配置的server塊中。

location /apk/user.apk { # app下載,不加會由于ip策略無法訪問
  allow all;
}

單獨放行網(wǎng)站中的一個接口

我的網(wǎng)站只允許指定城市訪問,但要單獨放行網(wǎng)站中的一個接口,例如文件上傳接口,同樣是在Nginx配置的server塊中。假設(shè)公網(wǎng)接口是http://公網(wǎng)IP/oss/upload,對應(yīng)的內(nèi)網(wǎng)服務(wù)是http://192.168.1.1:9966/oss/upload。

location /oss/upload { # 文件上傳接口,不設(shè)訪問限制
  proxy_pass http://192.168.1.1:9966/oss/upload/; # 注意location末尾沒斜線,這里末尾有斜線
  allow all;
}

參考鏈接

Nginx全面配置 - 知乎 (zhihu.com)

nginx 自定義 404、50x 錯誤頁面_nginx 504超時時指定一個html界面-CSDN博客

Nginx配置自定義的403頁面 - Mr.peter - 博客園 (cnblogs.com)

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

相關(guān)文章

  • Nginx配置中指令root和alias的區(qū)別淺析

    Nginx配置中指令root和alias的區(qū)別淺析

    這篇文章給大家主要介紹了Nginx配置中指令root與alias的區(qū)別,文章介紹的很詳細(xì),詳細(xì)對大家理解root與alias很有幫助,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • 當(dāng)Nginx所在服務(wù)器的磁盤空間滿時的影響以及如何避免這一問題

    當(dāng)Nginx所在服務(wù)器的磁盤空間滿時的影響以及如何避免這一問題

    Nginx所在服務(wù)器的磁盤空間滿了,會導(dǎo)致日志無法寫入、緩存失效、反向代理請求異常等問題,嚴(yán)重時可能導(dǎo)致服務(wù)不可用,這篇文章主要介紹了當(dāng)Nginx所在服務(wù)器的磁盤空間滿時的影響以及如何避免這一問題,需要的朋友可以參考下
    2024-12-12
  • nginx 常用指令 try_files allow root alias的使用

    nginx 常用指令 try_files allow root ali

    本文主要介紹了nginx 常用指令 try_files allow root alias的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Nginx手動編譯、安裝超詳細(xì)教程

    Nginx手動編譯、安裝超詳細(xì)教程

    Nginx安裝除了編譯以外,我們還可以直接用操作系統(tǒng)上自帶的工具比如說yum、apt-get直接安裝,這篇文章主要介紹了Nginx手動編譯、安裝超超詳解,需要的朋友可以參考下
    2023-09-09
  • Nginx 平滑升級的實現(xiàn)(拒絕服務(wù)漏洞)

    Nginx 平滑升級的實現(xiàn)(拒絕服務(wù)漏洞)

    本文主要介紹了Nginx 平滑升級的實現(xiàn)(拒絕服務(wù)漏洞),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • nginx實現(xiàn)發(fā)布靜態(tài)資源的方法

    nginx實現(xiàn)發(fā)布靜態(tài)資源的方法

    這篇文章主要介紹了nginx實現(xiàn)發(fā)布靜態(tài)資源的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Nginx如何配置加密證書訪問實現(xiàn)

    Nginx如何配置加密證書訪問實現(xiàn)

    本文主要介紹了Nginx如何配置加密證書訪問實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Nginx上對同一IP訪問的特定URL進(jìn)行限流實現(xiàn)

    Nginx上對同一IP訪問的特定URL進(jìn)行限流實現(xiàn)

    要在Nginx上對同一IP訪問的特定URL進(jìn)行限流,您可以使用ngx_http_limit_req_module模塊,本文就來介紹一下如何使用,具有一定的參考價值,感興趣的餓
    2024-01-01
  • 使用nginx同域名下部署多個vue項目并使用反向代理的方法

    使用nginx同域名下部署多個vue項目并使用反向代理的方法

    這篇文章主要介紹了使用nginx同域名下部署多個vue項目并使用反向代理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解Nginx中的重定向功能

    詳解Nginx中的重定向功能

    這篇文章主要介紹了詳解Nginx中的重定向功能,Nginx是一款基于事務(wù)的無阻塞的高性能服務(wù)器,需要的朋友可以參考下
    2015-07-07

最新評論