最近有个需求就是获取下本地的ip地址、网上搜索了相关的教程,总结一下分享给大家、有需要的小伙伴可以参考一下一、简单的获取UserAgent信息代码:echo$_SERVER['HTTP_USER_AGENT'];二、获取访客操作系统信息:/***获取客户端操作系统信息,包括win10*@paramnull*@returnstring*/三、获取浏览器信息:四、获取客户的IP地址
Linux Awk使用案例总结(nginx日志统计,文件对比合并等)
IDayDayHappy
NGINX
1、Nginx日志分析日志格式:'$remote_addr-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent""$http_x_forwarded_for"'日志记录:27.189.231.39--[09/Apr/2016:17:21:23+0800]"GET/Pub
docker中的Nginx限流、nginx+redies+lua动态黑名单ip封禁
不可L
nginxlua运维luadockernginx
nginx限流在http设置中添加限流的设置,20r/s每个ip每秒允许20次访问。设置完成后再需要限流的接口中调用该设置。http{limit_req_zone$urizone=api_read:20mrate=20r/s;}server{location/test/api{limit_reqzone=api_readburst=5nodelay;}nginx配合redis实现ip自动封禁前提:
nginx添加访问设置,限制ip并发
路过的人儿
添加limit_req_zone#/etc/nginx/nginx.confhttp{#nginx支持从IP上requestlimit。现在需要限制1request/minperIPlimit_req_zone$binary_remote_addrzone=sms:10mrate=1r/m;#limit_req_zone$binary_remote_addrzone=promote_req_lim
Nginx限制频繁刷新
dingcho
CentOS运维nginx前端linux
nginx中含有limit_req_zone和limit_reqlimit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;limit_req_log_levelnotice;http,sever,location等。limit_req zone=one burst=1000nodelay;1秒内请求2次以上,需要客户端等待服务器响应,后续请
Nginx限制每秒请求次数,限制每秒连接次数,下载速度限制
前浪浪奔浪流
为了防止网站被恶意攻击,总是需要做一些防护措施最外层的web服务器是Nginx,于是寻找nginx的一些关于防护措施的配置,记录在此。一些变量首先列举出会使用到的一些变量$binary_remote_addr#客户端IP$server_name#域名,HOST限制请求数首先需要定义限制区域,在http加入以下配置limit_req_zone$binary_remote_addrzone=testi
Linux 进阶
付少华
Linux系统操作linux运维服务器
文本操作grep文件中查找关键字,并显示关键字所在行greptextfiletext代表要搜索的文本,file代表供搜索的文件root@kay:/usr/local/nginx/conf#grep-nhttpnginx.conf26:http{31:#'$status$body_bytes_sent"$http_referer"'32:#'"$http_user_agent""$http_x_fo
php 检测是否是微信浏览器,php判断是否是微信浏览器和是否是移动端代码
浩彬老撕
php检测是否是微信浏览器
判断是否是微信functionis_weixin(){if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger')!==false){returntrue;}returnfalse;}判断是否是移动端functionisMobile(){$_SERVER['ALL_HTTP']=isset($_SERVER['ALL_HTTP'])?$_SERVE
判断是否是微信浏览器还是企业微信浏览器
qq_38375394
php微信浏览器企业微信浏览器
日常开发中我们可能需要判断是否为微信浏览器:if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger')!==false){ returntrue;}else{ returnfalse;}但是今天遇到需求,是否为企业微信浏览器。以前都根本不知道企业微信为何物,但是想来微信内置的浏览器都可以通过系统函数来获取浏览器信息echo$_SERV
判断当前是移动端还是PC端 判断是微信浏览器还是非微信浏览器
masterphp
php微信edge浏览器安全前端
需求分析:在我现有的项目中,使用MVC模型,移动端和PC端主方法都放在了C中,移动端使用is_mobile函数来区分移动端和PC端,在移动端需要区分微信浏览器和非微信浏览器,所以经过研究和实验,发现了以下的方法:区分移动端和PC端:$_SERVER['HTTP_USER_AGENT']的作用:用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码,所以使用了
nginx 地址重写 rewrite
Oooyzx
变量名称变量说明$args这个变量等于请求行中的参数,同$query_string$content_length请求头中的Content-length字段$content_type请求头中的Content-Type字段$document_root当前请求在root指令中指定的值$host请求主机头字段,否则为服务器名称$http_user_agent客户端agent信息$http_cookie客户
Nginx屏蔽电脑端访问,但不限制蜘蛛爬取
EternalChronosTime
nginx运维
server{listen80;server_nameexample.com;location/{if($http_user_agent~*(PC|Windows|Macintosh)){return403;}#蜘蛛的用户dai理字符串,可以根据需要进行修改set$spider_user_agent"Googlebot";if($http_user_agent~*$spider_user_agen
nginx直接打印输出_Nginx 日志打印POST数据
CVRunner
nginx直接打印输出
在工作中,开发希望能从Nginx日志中获取POST的数据信息,先记录下来在日志格式后面加上$request_body配置信息log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwar
使用mod_rewrite时常用的服务器变量: RewriteRule规则表达式的说明:
tboqi1
服务器运维apacherewrite
使用mod_rewrite时常用的服务器变量:HTTPheaders:HTTP_USER_AGENT,HTTP_REFERER,HTTP_COOKIE,HTTP_HOST,HTTP_ACCEPTconnection&request:REMOTE_ADDR,QUERY_STRINGserverinternals:DOCUMENT_ROOT,SERVER_PORT,SERVER_PROTOCOLsys
nginx限流配置
代号:猿a
nginx网络服务器
nginx限流配置概述两种限流方式配置概述限流用于保护系统,现在用户恶意请求,并发请求数过大时,对超过配置指定的部分请求进行限制访问,保证其他请求的正常响应两种限流方式限制请求速率限制连接数量配置nginx使用漏铜算法对处理请求的速率进行限流使用limit_req_zone和limit_req指令限制请求速率使用limit_conn_zone和limit_conn指令限制连接数#白名单配置star
nginx判断是否是移动端/判断浏览器语言
IARNO
判断移动端#判断移动端,跳转转到m.aaa.comif($http_user_agent~*(mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)){rewrite^/(.*)$http://m.aaa.comredirect;#这里随意使用,这一行代表域名栏会跳转到m.aaa.com#proxy_passhttp://101.200.1
php怎样判断客户端,PHP判断客户端为PC还是手机
阿荣田Toronto
php怎样判断客户端
本篇文章代码功能是用PHP判断客户端是PC还是手机,具有一定参考价值,感兴趣的朋友可以了解一下。functionis_mobile(){$agent=strtolower($_SERVER['HTTP_USER_AGENT']);$is_pc=(strpos($agent,'windowsnt'))?true:false;$is_mac=(strpos($agent,'macos'))?true:
nginx限流配置
_好孩子
配置示例:http{limit_req_zone$binary_remote_addrzone=one:10mrate=2r/s;server{location/search/{limit_reqzone=oneburst=5nodelay;}}nginx的限流配置的几个参数:rate:在不做其他配置时,他表示没多少秒(毫秒处理一个请求),比如2r/s表示500mm处理一个请求,如果瞬时(比如说1
Nginx配置限流
拾光师
nginx程序人生
Nginx配置限流Nginx有限流功能,是基于漏桶算法实现的limit_req_zone是配置在http模块中的#设置限流zone用来定义ip状态和url访问频率的共享区域,其中mylimit为区域名称,冒号后为区域大小,16000个IP地址的状态信息大约是1M,rate为最大请求速率(如每分钟一个请求)limit_req_zone$binary_remote_addrzone=mylimit:1
使用Linux命令分析Nginx日志文件
风云雾雨电
nginxlinux
常见日志格式:$remote_addr-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent""$http_x_forwarded_for"'统计IP访问次数:#awk'{a[$1]++}END{for(vina)printv,a[v]}'access.log统计访问量大
nginx常用模块使用及原理了解
平平淡淡的真
nginx常用模块了解及使用nginx常用模块介绍及使用2.jpg对客户端进行限制相关配置-预防攻击一般是下面的需求:秒杀、抢购并发限制防止攻击limit_req_zone用来限制单位时间内的请求数,即速率限制,采用的漏桶算法nginx限制请求数limit_req_zone语法:limit_req_zone$variablezone=name:sizerate=rate;默认值:none配置段:h
判断客户端机型
R满目山河
//判断客户端机型publicfunctionget_device_type(){_SERVER['HTTP_USER_AGENT']);agent,'iphone')||strpos(type='ios';}if(strpos(type='android';}return$type;}
禁止搜索引擎爬虫
领贺
if($http_user_agent~*"qihoobot|Baidu|Baiduspider|Baiduspider-image|Baiduspider-video|Baiduspider-news|Baiduspider-favo|Baiduspider-cpro|Baiduspider-ads|Baiduboxapp|YisouSpider|EasouSpider|YodaoBot|You
nginx 静态动态文件分离部署
小小鱼er
nginx服务器前端
第一种配置在server模块中配置if($http_user_agent~*"MSIE[6-9].[0-9]"){rewrite/*/index_ie.htmlbreak;}代码先判断请求的user_agent中是否含有MSIEie浏览器标识。如果有的话,使用rewirte来找到目标静态资源。资源地址是:/usr/local/nginx/html/index_ie.html所以必须配置root根目
Nginx之QPS限制模块解读
一个风轻云淡
nginx解读nginx运维服务器网络数据库
目录基本介绍模块配置具体解读limit_req_zonelimit_req原理:漏桶算法基本介绍NGINX通过limit_req_zone和limit_req两条指令来实现速率限制。指令limit_req_zone定义了限速的参数,指令limit_req在所在的location使能定义的速率。QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS=req/sec=
mongodb3.03开启认证
21jhf
mongodb
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logp
【Spark103】Task not serializable
bit1129
Serializable
Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法
1.
package spark.exampl
你所熟知的 LRU(最近最少使用)
dalan_123
java
关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现
1、大体的想法
a、查询出最近最晚使用的项
b、给最近的使用的项做标记
通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?
这时候多
Javascript 跨域
周凡杨
JavaScriptjsonp跨域cross-domain
 
linux下安装apache服务器
g21121
apache
安装apache
下载windows版本apache,下载地址:http://httpd.apache.org/download.cgi
1.windows下安装apache
Windows下安装apache比较简单,注意选择路径和端口即可,这里就不再赘述了。 2.linux下安装apache:
下载之后上传到linux的相关目录,这里指定为/home/apach
FineReport的JS编辑框和URL地址栏语法简介
老A不折腾
finereportweb报表报表软件语法总结
JS编辑框:
1.FineReport的js。
作为一款BS产品,browser端的JavaScript是必不可少的。
FineReport中的js是已经调用了finereport.js的。
大家知道,预览报表时,报表servlet会将cpt模板转为html,在这个html的head头部中会引入FineReport的js,这个finereport.js中包含了许多内置的fun
根据STATUS信息对MySQL进行优化
墙头上一根草
status
mysql 查看当前正在执行的操作,即正在执行的sql语句的方法为:
show processlist 命令
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab
我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名
aijuans
Spring 3
本文介绍如何给Spring的Bean配置文件的Bean定义别名?
原始的
<bean id="business" class="onlyfun.caterpillar.device.Business">
<property name="writer">
<ref b
高性能mysql 之 性能剖析
annan211
性能mysqlmysql 性能剖析剖析
1 定义性能优化
mysql服务器性能,此处定义为 响应时间。
在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
这是一个陷阱。
资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不
主外键和索引唯一性约束
百合不是茶
索引唯一性约束主外键约束联机删除
目标;第一步;创建两张表 用户表和文章表
第二步;发表文章
1,建表;
---用户表 BlogUsers
--userID唯一的
--userName
--pwd
--sex
create
线程的调度
bijian1013
java多线程thread线程的调度java多线程
1. Java提供一个线程调度程序来监控程序中启动后进入可运行状态的所有线程。线程调度程序按照线程的优先级决定应调度哪些线程来执行。
2. 多数线程的调度是抢占式的(即我想中断程序运行就中断,不需要和将被中断的程序协商)
a) 
查看日志常用命令
bijian1013
linux命令unix
一.日志查找方法,可以用通配符查某台主机上的所有服务器grep "关键字" /wls/applogs/custom-*/error.log
二.查看日志常用命令1.grep '关键字' error.log:在error.log中搜索'关键字'2.grep -C10 '关键字' error.log:显示关键字前后10行记录3.grep '关键字' error.l
【持久化框架MyBatis3一】MyBatis版HelloWorld
bit1129
helloworld
MyBatis这个系列的文章,主要参考《Java Persistence with MyBatis 3》。
样例数据
本文以MySQL数据库为例,建立一个STUDENTS表,插入两条数据,然后进行单表的增删改查
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
【Hadoop十五】Hadoop Counter
bit1129
hadoop
1. 只有Map任务的Map Reduce Job
File System Counters
FILE: Number of bytes read=3629530
FILE: Number of bytes written=98312
FILE: Number of read operations=0
FILE: Number of lar
解决Tomcat数据连接池无法释放
ronin47
tomcat 连接池 优化
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。
今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。
简单分析了一
java-75-二叉树两结点的最低共同父结点
bylijinnan
java
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in
行业垂直搜索引擎网页抓取项目
carlwu
LuceneNutchHeritrixSolr
公司有一个搜索引擎项目,希望各路高人有空来帮忙指导,谢谢!
这是详细需求:
(1) 通过提供的网站地址(大概100-200个网站),网页抓取程序能不断抓取网页和其它类型的文件(如Excel、PDF、Word、ppt及zip类型),并且程序能够根据事先提供的规则,过滤掉不相干的下载内容。
(2) 程序能够搜索这些抓取的内容,并能对这些抓取文件按照油田名进行分类,然后放到服务器不同的目录中。
[通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费
comsci
资源
降低通讯服务资费,就意味着有更多的用户进入,就意味着通讯服务提供商要接待和服务更多的用户,在总体运维成本没有由于技术升级而大幅下降的情况下,这种降低资费的行为将导致每个用户的平均带宽不断下降,而享受到的服务质量也在下降,这对用户和服务商都是不利的。。。。。。。。
&nbs
Java时区转换及时间格式
Cwind
java
本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。
问题描述:
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。
readonly,只读,不可用
dashuaifu
jsjspdisablereadOnlyreadOnly
readOnly 和 readonly 不同,在做js开发时一定要注意函数大小写和jsp黄线的警告!!!我就经历过这么一件事:
使用readOnly在某些浏览器或同一浏览器不同版本有的可以实现“只读”功能,有的就不行,而且函数readOnly有黄线警告!!!就这样被折磨了不短时间!!!(期间使用过disable函数,但是发现disable函数之后后台接收不到前台的的数据!!!)
LABjs、RequireJS、SeaJS 介绍
dcj3sjt126com
jsWeb
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更
[应用结构]入口脚本
dcj3sjt126com
PHPyii2
入口脚本
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文
haoop shell命令
eksliang
hadoophadoop shell
cat
chgrp
chmod
chown
copyFromLocal
copyToLocal
cp
du
dus
expunge
get
getmerge
ls
lsr
mkdir
movefromLocal
mv
put
rm
rmr
setrep
stat
tail
test
text
MultiStateView不同的状态下显示不同的界面
gundumw100
android
只要将指定的view放在该控件里面,可以该view在不同的状态下显示不同的界面,这对ListView很有用,比如加载界面,空白界面,错误界面。而且这些见面由你指定布局,非常灵活。
PS:ListView虽然可以设置一个EmptyView,但使用起来不方便,不灵活,有点累赘。
<com.kennyc.view.MultiStateView xmlns:android=&qu
jQuery实现页面内锚点平滑跳转
ini
JavaScripthtmljqueryhtml5css
平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htmHTML文件代码:
&
kafka offset迁移
kane_xie
kafka
在早前的kafka版本中(0.8.0),offset是被存储在zookeeper中的。
到当前版本(0.8.2)为止,kafka同时支持offset存储在zookeeper和offset manager(broker)中。
从官方的说明来看,未来offset的zookeeper存储将会被弃用。因此现有的基于kafka的项目如果今后计划保持更新的话,可以考虑在合适
android > 搭建 cordova 环境
mft8899
android
1 , 安装 node.js
http://nodejs.org
node -v 查看版本
2, 安装 npm
可以先从 https://github.com/isaacs/npm/tags 下载 源码 解压到
java封装的比较器,比较是否全相同,获取不同字段名字
qifeifei
非常实用的java比较器,贴上代码:
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
i
记录一些函数用法
.Aky.
位运算PHP数据库函数IP
高手们照旧忽略。
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧)
当然用到了ip2long()函数把字符串转为整型数
sublime text 3 rust
wudixiaotie
Sublime Text
1.sublime text 3 => install package => Rust
2.cd ~/.config/sublime-text-3/Packages
3.mkdir rust
4.git clone https://github.com/sp0/rust-style
5.cd rust-style
6.cargo build --release
7.ctrl