查看完整版本: 在CentOS 6 的 nginx 上安裝 GeoIP Module 來 Block IP


immvp 2015-4-23 10:56

在CentOS 6 的 nginx 上安裝 GeoIP Module 來 Block IP

有時後我們遇到DOS Attack or 特殊目地可能會想要Block 整個country or 只開放某個國家的IP才能看...<br>這時後使用 Nginx 來做就簡單很多...步驟如下:<br><br>(1) Install GeoIP library via yum<br>[quote]<br>*** For CentOS 6 – 64-bit ***<br># rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm<br># rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm <br><br># <font color="Red">yum install geoip geoip-devel</font><br>[/quote]<br>After successful installation, the library will be stored in: /usr/share/GeoIP/GeoIP.dat<br><br>(2) Configure nginx<br>[quote]<br>#vi /etc/nginx/conf/nginx.conf<br><br>http {<br>[...]<br><font color="DarkGreen">geoip_country /usr/share/GeoIP/GeoIP.dat;<br>map $geoip_country_code $allowed_country {<br>default yes;<br>CN no;<br>}</font><br>[...]<br>}<br>[/quote]<br><br>(3) Configure nginx virtualhost:<br>[quote]<br>#vi /etc/nginx/conf.d/yourdomain.conf<br><br>server {<br>[...]<br><font color="DarkGreen">if ($allowed_country = no) {<br>return 403;<br>}</font><br>[...]<br>}<br>[/quote]<br><br>然後 nginx 重啟之後.從 CN 來的訪客就會看不到網站囉~~<br><br>2015.08.21 PS: 之前用 nginx v1.0.15 可以用...因為這個版本有把 --with-http_geoip_module 內建進去...可以最近升級到 nginx 1.6 跟 nginx 1.8 之後..<br>發現已經沒有內建了...所以不想麻煩的朋友...可以試著降版本就好囉....<br><br>[quote]<br># yum remove nginx<br># yum install nginx-1.0.15<br>[/quote]<br><br>如果你要找尋相關的國家代碼. 可以參考底下網址: <br>http://dev.maxmind.com/geoip/legacy/codes/iso3166/<br><br>
頁: [1]
查看完整版本: 在CentOS 6 的 nginx 上安裝 GeoIP Module 來 Block IP