分类
未分类

Nginx获取用户真实地址

GeoIP定位用户位置,若是用户使用了代理,则获取到的是代理地址。
解决方法是安装nginx模块http_realip_module,默认该模块未安装,参考下面连接:
http://nginx.org/en/docs/http/ngx_http_realip_module.html

#configure编译时添加该配置
--with-http_realip_module

增加配置nginx.conf如下:

http{
set_real_ip_from 0.0.0.0/0;
real_ip_header    X-Forwarded-For;
}
分类
未分类

CentOS定时更新GeoIP

脚本:

#!/bin/bash
if [ ! -d /usr/local/share/GeoIP ];then
    mkdir /usr/local/share/GeoIP
fi

wget -t 5 -O /tmp/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -t 5 -O /tmp/GeoLiteCity.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

gzip -df /tmp/GeoIP.dat.gz
gzip -df /tmp/GeoLiteCity.dat.gz

mv -f /tmp/Geo*.dat /usr/local/share/GeoIP/

添加到定时任务便可。

分类
未分类

Nginx安装GeoIP实现区域访问控制

cd /usr/local/src/
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar -zxvf GeoIP.tar.gz
./configure
make
make install

#使用ldconfig将库索引到系统中
echo '/usr/local/lib' > /etc/ld.so.conf.d/geoip.conf
ldconfig

#检查库是否加载成功
ldconfig -v | grep GeoIP

#根据你当前 Nginx 的安装参数带上 –with-http_geoip_module 重新编译

#查看本地是否已有 GeoIP 数据库
cd /usr/local/share/GeoIP

#如果没有这两个库,则手动下载
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gzip -d GeoIP.dat.gz

#将库地址配置到 nginx.conf 中http位置
geoip_country /usr/local/share/GeoIP/GeoIP.dat;
geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;

$geoip_country_code – 两个字母的国家代码,如:”RU”, “US”。
$geoip_country_code3 – 三个字母的国家代码,如:”RUS”, “USA”。
$geoip_country_name – 国家的完整名称,如:”Russian Federation”, “United States”(如果可用)。
$geoip_region – 地区的名称(类似于省,地区,州,行政区,联邦土地等),如:”Moscow City”, “DC”(如果可用)。
$geoip_city – 城市名称,如”Moscow”, “Washington”(如果可用)。
$geoip_postal_code – 邮政编码(如果可用)。
$geoip_city_continent_code(如果可用)。
$geoip_latitude – 所在维度(如果可用)。
$geoip_longitude – 所在经度(如果可用)。

这些数字代表的是中国省份地区~~
表如下:
CN,01,”Anhui”
CN,02,”Zhejiang”
CN,03,”Jiangxi”
CN,04,”Jiangsu”
CN,05,”Jilin”
CN,06,”Qinghai”
CN,07,”Fujian”
CN,08,”Heilongjiang”
CN,09,”Henan”
CN,10,”Hebei”
CN,11,”Hunan”
CN,12,”Hubei”
CN,13,”Xinjiang”
CN,14,”Xizang”
CN,15,”Gansu”
CN,16,”Guangxi”
CN,18,”Guizhou”
CN,19,”Liaoning”
CN,20,”Nei Mongol”
CN,21,”Ningxia”
CN,22,”Beijing”
CN,23,”Shanghai”
CN,24,”Shanxi”
CN,25,”Shandong”
CN,26,”Shaanxi”
CN,28,”Tianjin”
CN,29,”Yunnan”
CN,30,”Guangdong”
CN,31,”Hainan”
CN,32,”Sichuan”
CN,33,”Chongqing”

分类
未分类

nginx lua安装

wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make install PREFIX=/usr/local/luajit
#注意环境变量!
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -xzvf v0.3.0.tar.gz

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz
tar -xzvf v0.10.8.tar.gz

wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -xzvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.8
#注意ngx_devel_kit和lua-nginx-module以实际解压路径为准
make -j2
make install

ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

分类
未分类

Nginx配置指定目录的访问重定向到新的地址

需求:重定向访问地址www.geekapp.cn/test/到二级域名test.geekapp.cn
配置如下,亲测有效:

listen 80;
server_name www.geekapp.cn;
if ( $uri ~ "www.geekapp.cn/test/" ){
   rewrite ^/(.*) http://test.geekapp.cn/ permanent;
   break;
}
分类
未分类

Unity3d加载Obj文件

1、导入obj格式文件。
2、新建一个GameObject并添加MeshFilter和MeshRenderer部件
3、obj关联GameObject

分类
未分类

Nginx配置网页只能指定浏览器访问

Nginx配置网页只能指定浏览器访问,项目需求,网页只能在微信内置浏览器打开,非内置浏览器禁止打开。
2种思路:
1、Nginx判断UA只能微信打开,此方式无法避免伪造的UA。

location / {
if ( $http_user_agent !~ "MicroMessenger" ){
   return 405;
}
}

2、使用微信内置的JS接口判断是否微信环境。

附:多条件判断指定mobile目录只能微信访问

location / {

set $flag 0;
if ( $uri ~ "/mobile/" ){
   set $flag "${flag}1";
}
if ( $http_user_agent !~ "MicroMessenger" ){
   set $flag "${flag}1";
}
if ($flag = "011"){
   return 405;
}

}