環(huán)境:
centos version: centos7
需求如下:
通過ip區(qū)別國內(nèi)或國外,從而跳轉(zhuǎn)到不同的頁面,最終用nginx的第三方module:geoip來實(shí)現(xiàn),這就不說它的優(yōu)勢(shì)了,網(wǎng)上很多解釋,下面看怎么配置
我的系統(tǒng)中是配置了nignx.repo的,我直接用yum來安裝了geoip模塊,沒有用添加模塊重編的方式
yum?install?nginx-module-geoip
下載geoip的數(shù)據(jù)庫文件
cd?/etc/nginx mkdir?geoipdat cd?geoipdat 下載 wget?http://geolite.maxmind.com/download/geoip/database/geolitecountry/geoip.dat.gz wget?http://geolite.maxmind.com/download/geoip/database/geolitecity.dat.gz 解壓 gunzip?geoip.dat.gz gunzip?geolitecity.dat.gz
根據(jù)需求配置nginx
首先在nginx.conf中加載geoip的庫,配置如下:
load_module?"modules/ngx_http_geoip_module.so"; load_module?"modules/ngx_stream_geoip_module.so"; user?nginx; worker_processes?1; error_log?/var/log/nginx/error.log?warn; pid????/var/run/nginx.pid; events?{ ??worker_connections?1024; } http?{ ??include????/etc/nginx/mime.types; ??default_type?application/octet-stream; ??log_format?main?'$remote_addr?-?$remote_user?[$time_local]?"$request"?' ???????????'$status?$body_bytes_sent?"$http_referer"?' ???????????'"$http_user_agent"?"$http_x_forwarded_for"'; ??access_log?/var/log/nginx/access.log?main; ??sendfile????on; ??#tcp_nopush???on; ??keepalive_timeout?65; ??#gzip?on; ??include?/etc/nginx/conf.d/*.conf; }
配置虛擬主機(jī)如下:
geoip_country?/etc/nginx/geoipdat/geoip.dat; geoip_city?/etc/nginx/geoipdat/geolitecity.dat; server?{ ??listen????80; ??server_name?localhost; ??location?/?{ ?root?/opt; ?if?($geoip_country_code?=?cn){ ?rewrite?(.*)?/zh$1?break; ?} ????rewrite?(.*)?/en$1?break; ??} ????error_page??500?502?503?504?/50x.html; ??location?=?/50x.html?{ ????root??/usr/share/nginx/html; ??} }
opt目錄如下
[root@vm_0_15_centos?opt]#?tree . | └──?en │????└──?index.html └──?zh ??└──?index.html
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END