nginx第三方模块GeoIP和Image_filter,nginxgeoip




# /usr/local/nginx/sbin/nginx -V 查看是否安装模块




#cd  到源码编译目录


./configure --help | grep image_filter




下载解压各个模块
下载地址
https://github.com/openresty/lua-nginx-module/archive/v0.10.10.tar.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz






yum install lua-devel


./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-stream=dynamic --with-http_stub_status_module --add-module=/root/ngx_cache_purge-2.3 --with-http_image_filter_module --add-module=/第三方模块路径


编译通过  不用make install
make


#重命名原来的nginx
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old


#把编译完成的复制过去(在源码解压目录)
cp /objs/nginx /usr/local/nginx/sbin/nginx


#重启nginx


/usr/local/nginx/sbin/nginx -V 查看模块是否编译进去了






#把下载好的geoip的两个数据库放到
mkdir /usr/local/nginx/geoip
mv *dat /usr/local/nginx/geoip


















geoip






image_filter
图片过滤器







#load_module modules/ngx_stream_module.so;   #动态加载模块,必须写道开头
user  nginx nginx;

#4核心启用
worker_processes  4;
worker_cpu_affinity 0001 0010 0100 1000

#8核心启用
#worker_processes 8;
#worker_cpu_affinity 00000001 00000010 00000100 0000100000010000 00100000 01000000 10000000;

#这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,
#但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;




#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    use epoll;
	worker_connections 65535;
	multi_accept on;
}


http {
    include       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  logs/access.log  main;

	#开启高效传输模式
    sendfile        on;
    tcp_nopush     on;
	#开启高效传输模式end
    
	#连接超时时间
	
    keepalive_timeout  60;                        	#客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接
	tcp_nodelay on;									#也是防止网络阻塞,不过要包涵在keepalived参数才有效
	client_header_buffer_size 4k;					#客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过 1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
	open_file_cache max=102400 inactive=20s;		#这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件
													#数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
	open_file_cache_valid 30s;						#这个是指多长时间检查一次缓存的有效信息。
	open_file_cache_min_uses 1;						#open_file_cache指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文
													#件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。
	client_header_timeout 15;						#设置请求头的超时时间。我们也可以把这个设置低些,如果超过这个时间没有发送任何数据,nginx将返回request time out的错误
	client_body_timeout 15;							#设置请求体的超时时间。我们也可以把这个设置低些,超过这个时间没有发送任何数据,和上面一样的错误提示
	reset_timedout_connection on;					#告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。 time out的错误
	send_timeout 15;								#响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接
	server_tokens off;								#并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。
	client_max_body_size 10m;						上传文件大小限制
	
	
	#连接超时时间 end
	
	
	#fastcgi调优 
	
	fastcgi_buffering on;                          #默认on,是否缓存fastcgi响应
	fastcgi_connect_timeout 600s;                  #指定连接到后端FastCGI的超时时间。
	fastcgi_send_timeout 600s;					   #向FastCGI传送请求的超时时间。
	fastcgi_read_timeout 600s;					   #指定接收FastCGI应答的超时时间。
	fastcgi_buffer_size 64k;                       #指定读取FastCGI应答第一部分需要用多大的缓冲区,默认的缓冲区大小为fastcgi_buffers指令中的每块大小,可以将这个值设置更小。
	fastcgi_buffers 4 64k;						   #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,如果一个php脚本所产生的页面大小为256KB,那么会分配4个64KB的缓冲区来缓存,
												   #如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp_path指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于磁盘。
												   #一般这个值应该为站点中php脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“8 32K”、“4 64k”等。
	fastcgi_busy_buffers_size 128k;                #建议设置为fastcgi_buffers的两倍,繁忙时候的buffer
	fastcgi_temp_file_write_size 128k;             #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,该数值设置小时若负载上来时可能报502BadGateway
	fastcgi_temp_path fastcgi_temp 1 2;            #缓存临时目录
	fastcgi_intercept_errors on;				   #这个指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。
	fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=fastcgi_cache_zone:128m inactive=1d max_size=10g;
	
	#fastcgi_cache缓存目录,可以设置目录层级,比如1:2会生成16*256个子目录,cache_fastcgi是这个缓存空间的名字,cache是用多少内存(这样热门的内容nginx直接放内存,提高访问速度),
	#inactive表示默认失效时间,如果缓存数据在失效时间内没有被访问,将被删除,max_size表示最多用多少硬盘空间。
					   
	#fastcgi调优end
	

	
	#gzip调优
	
    gzip  on;                        	#开启压缩功能
	gzip_min_length 2k;				    #设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1K,如果小与1K可能会越压越大。
	gzip_buffers    4 32k;				#压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。	
	gzip_http_version 1.1;				#压缩版本,用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可
	gzip_comp_level 6;					; #压缩比例,用来指定GZIP压缩比,1压缩比最小,处理速度最快,9压缩比最大,传输速度快,但是处理慢,也比较消耗CPU资源。
	gzip_typestext/plain text/css text/javascriptapplication/json application/javascript application/x-javascriptapplication/xml;   #用来指定压缩的类型,‘text/html’类型总是会被压缩。
	gzip_disable "MSIE[1-6]";   		#ie浏览器1-6禁用gzip
	gzip_vary on;   					#varyheader支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据
	gzip_proxied any;
	

	
	#gzip调优end

	
	
	#geoip
	geoip_country /usr/local/nginx/geoip/GeoIP.data;
	geoip_city    /usr/local/nginx/geoip/GeoLiteCity.dat;
	
	#一般是在日志里面使用
	log_format ip_log '$geoip_city_country_name $geoip_region_name $geoip_city';
	
	#geoip end
	
	
	
	
    
}












nginx-lua













相关内容

    暂无相关文章