1. 程式人生 > >nginx安裝GeoIP模組,遮蔽特定地區IP

nginx安裝GeoIP模組,遮蔽特定地區IP

老闆出國訪問不了公司的系統,想起當時設定了nginx,只允許中國的IP地址訪問。註釋掉規則後,老闆可以訪問公司系統。這裡寫篇部落格,記錄一下GeoIP模組的使用。我在aws上啟用了一個免費的主機,用的centos的映象。


1.安裝nginx
[[email protected] ~]# vi /etc/yum.repos.d/nginx.repo 
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
[[email protected] ~]# yum install nginx -y
[
[email protected]
~]# service nginx start Starting nginx:Starting nginx:                                            [  OK  ]
2.安裝nginx_module_geoip
[[email protected] ~]# yum install nginx-module-geoip -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package nginx-module-geoip.x86_64 0:1.14.0-1.el6.ngx will be installed
--> Processing Dependency: GeoIP for package: nginx-module-geoip-1.14.0-1.el6.ngx.x86_64
--> Processing Dependency: libGeoIP.so.1()(64bit) for package: nginx-module-geoip-1.14.0-1.el6.ngx.x86_64
--> Finished Dependency Resolution
Error: Package: nginx-module-geoip-1.14.0-1.el6.ngx.x86_64 (nginx)
           Requires: GeoIP
Error: Package: nginx-module-geoip-1.14.0-1.el6.ngx.x86_64 (nginx)
           Requires: libGeoIP.so.1()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

報錯,通過yum search geoip查詢,發現倉庫裡沒有安裝包。

安裝epel倉庫,yum install epel-release -y,再次查詢,倉庫裡有GeoIP安裝包

3.下載GeoIP.dat
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

解壓後,我就放在了nginx目錄下。

4.修改配置檔案,使用IP篩選

為方便所有站點使用,我直接在/etc/nginx/nginx.conf中寫入載入

load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so;
load_module /usr/lib64/nginx/modules/ngx_stream_geoip_module.so;
...
geoip_country /etc/nginx/GeoIP.dat;

配置單個站點使用規則,開啟/etc/nginx/conf.d/default.conf

set $deny 0;
    if ($geoip_country_code != "CN"){
        set $deny 1;
        return 302 $scheme://$host/405.html;
    }
    if ($deny = 1){
        return 302 $scheme://$host/405.html;
    }

這裡設定的,非中國IP不能訪問。

走代理測試成功。

相關推薦

nginx安裝GeoIP模組遮蔽特定地區IP

老闆出國訪問不了公司的系統,想起當時設定了nginx,只允許中國的IP地址訪問。註釋掉規則後,老闆可以訪問公司系統。這裡寫篇部落格,記錄一下GeoIP模組的使用。我在aws上啟用了一個免費的主機,用的centos的映象。1.安裝nginx[[email protec

nginx安裝http_ssl_module模組支援https

1,進入原始碼包,如: cd /usr/local/nginx-1.15.0/ 2,執行nginx -V命令檢視已經安裝的nginx模組(configure arguments:後面表示當前已經安裝的nginx模組)如: [[email protected] ~]

nginx的ngx_http_geoip2模組以精準禁止特定地區IP訪問

  要求:對網站的資訊,比如某個訪問節點不想國內或者國外的使用者使用,禁止國內或者國外或者精確到某個城市的那種情況。 解決方式:1.Cloudfalre來實現禁止特定國家的ip訪問,比較簡單,但是需要money!!!           &nb

nginx安裝其他模組

cd /usr/local/dev_tools/nginx-1.14.0 # 檢視可以使用的內建模組 ./configure --help # 例如新增統計模組 ./configure --with-http_stub_status_

身份證校驗真實版遮蔽地區校驗

去掉了地區驗證 package packer; import java.util.Calendar; public class IdNumberValidate { public String idValidate( String idNumber) { Str

Ubuntu16 nginx安裝http_image_filter_module模組

目錄 配置image_filter 配置 重啟nginx 如何安裝呢? 安裝image_filter模組依賴的庫。 檢視之前的配置 新增上圖片模組【由於它是系統模組,不需要額外下載,直接新增就可以了】 進入安裝nginx的資料夾中

Nginx 安裝 SSL 證書配置檔案各個引數的含義

相比 CRL 驗證方式,OCSP 就更加高效,OCSP 每次只查詢並獲取一條記錄。然而這些預設查詢 OCSP 的客戶端在獲得查詢結果的響應前勢必會一直阻塞後續的事件,在網路情況堪憂的情況下(尤其是大陸地區)會造成較長時間的頁面空白。並且一旦有黑客或者組織對CA的OCSP發動DDos攻擊(分散式拒絕攻擊),客

Nginx安裝echo模組

echo-nginx-module 模組可以在Nginx中用來輸出一些資訊,可以用來實現簡單介面或者排錯。 專案地址:https://github.com/openresty/echo-nginx-module 獲取Nginx原始碼 因為需要編譯模組,需要有Nginx原始碼。 如果已安裝Nginx,需

python初安裝出現的一點問題(pycharm無法安裝第三方模組pip無法升級等)

今天安裝pyCharm準備熟悉下環境,安裝很順利,找個啟用碼什麼的,但是當我想匯入一個第三方模組的時候就出現了問題,問題如下圖所示對於一個剛入門的我來說,比較難過,看描述意思是模組pip沒有main屬性,描述的很清楚,但。。。怎麼解決呢。。。還好網上有一篇文章講了這個問題。。

安裝python pip安裝request模組執行python程式碼

1,看到這篇文章,想試試用來測試我們的介面:  照著寫了python的引用 requests模組的程式碼, 執行python, 反饋說不能引入這個requests模組, 說用pip安裝requests模組, 命令端使用pip install requests反饋說沒

Nginx安裝google_perftools模組的方法

/*********************************************************************  * Author  : Samson  * Date    : 06/01/2015  * Test platform:  * 

MAC 使用 python3 安裝 PyMysql 模組安裝 MySQL

MAC 使用 python3 PyMysql 模組連線 MySQL @(python3) python 標準資料庫藉口參考網站 不同的資料庫,需要下載不同的 DA API 模組。DB-API 是一個規範,定義了一系列必須的物件和資料庫存取方式,以便為各種各

Python:安裝setuptools安裝MySQLdb模組連線資料庫程式碼

一、準備工作 安裝MySQLdb需要事先安裝以下元件: 1.1 python         yum install python-devel 1.2 mysql         yum install mysql-devel 1.3 gcc         yum ins

Nginx安裝報錯引起我的對國內某個雲服務商的不滿他的名字叫老華為

這家公司老矣!主要領導應該下課反省,我用阿里雲的伺服器從來沒有諮詢過他們客服關於技術方面的問題,華為的技術客服加我qq無數個,我自己反省我也是忒菜了。 使用華為雲,debian8,安裝Nginx的某個版本的時候,你會收到一個錯誤: chown: invalid user:

nginx增加GeoIP模組

Linux安裝GeoIP 附件地址:連結: https://pan.baidu.com/s/1dFl1zZN 密碼: x37s ./configure make make install 如果原已經安裝好的nginx,現在需要新增一個未被編譯安裝的模組

php中獲取nginx代理後的客戶端真實IP

一般來說,PHP獲取IP用的是$_SERVER[‘REMOTE_ADDR’],但是經過代理後,這個方式獲取到的是代理伺服器的ip,不符合要求!如果需要獲取真實IP該做什麼呢? 1.修改nginx配置:p

yum安裝下的nginx如何新增模組和新增第三方模組

需求:生產有個介面是通過socket通訊。nginx1.9開始支援tcp層的轉發,通過stream實現的,而socket也是基於tcp通訊。 實現方法:Centos7.2下yum直接安裝的nginx,新增新模組支援tcp轉發;重新編譯Nginx並新增 --with-stream 引數。 實現過程: 1.

Ubuntu下編譯安裝nginx新增rtmp模組推流、拉流播放

mkdir nginx 切換到nginx目錄,下載壓縮包並解壓到當前工作目錄: wget http://nginx.org/download/nginx-1.12.1.tar.gz tar -zxvf nginx-1.12.1.tar.gz 安裝依賴的的庫: sudo ap

nginx安裝nginx-lua模組安裝(centos7.3)

nginx安裝,nginx-lua,echo模組安裝 1 下載安裝LuaJIT [[email protected] mysql3306]# cd /usr/local/src [[email protected] src]# wget http://

循序漸進nginx(三):日誌管理、http限流、https配置http_rewrite模組第三方模組安裝結語

[TOC] ----- 前置知識章節: 1.[介紹、安裝、hello world、location匹配](https://www.cnblogs.com/progor/p/13338483.html)✅ 2.[反向代理、負載均衡、快取服務、靜態資源訪問](https://www.cnblogs.com/p