自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 高可用可伸缩架构实用经验谈

移动互联网、云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品。此时,如果用户需求抓得准,用户数量将很可能获得爆发式增长,而不需要像以往一样需要精心运营几年的时间。然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些严峻的技术挑战:如何避免因为单台机器当机导致服务不可用;如何避免在服务容量不足时,用户体验下降,等等。在系统构建之...

2015-07-22 08:21:07 88

原创 从零开始nodejs系列文章

从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。非常适合小型网站,...

2015-07-21 15:57:30 77

原创 负载均衡如何计算同一公网地址下所有局域网ip访问量?

负载均衡如何计算同一公网地址下所有局域网ip访问量?我们目前使用的负载是某厂家产品(避免广告嫌疑,厂家名称不说了),负载提供的是一个公网地址,然后全国都访问这个地址,由负载分发到各节点,但是测试时发现,假如北京我们一个办公室50人,出口为同一个公网ip,负载上凡是发现从这个公网ip出来的访问统一分配到该ip手册所分发到的节点,这个在负载上是否能区分开来(根据公网IP过来的流量区分各局域网地址,分...

2015-07-21 15:54:54 295

原创 关于前端各种刷的思考

     刷票行为,一直以来都是个难题,无法从根本上防止。但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。基于 PHP,下面介绍防刷票的一些技巧:1、HTTP_REFERER : 校验 $_SERVER['HTTP_REFERER']。可伪造,使用 CURL。curl_setopt($ch, CURLOPT_REFERER, 'HTTP://www.baidu....

2015-07-21 14:41:14 75

原创 基于OpenSSL自建CA和颁发SSL证书+nginx访问

关于SSL/TLS介绍见文章 SSL/TLS原理详解。关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 。openssl是一个开源程序的套件、这个套件有三个部分组成:一是libcryto,这是一个具有通用功能的加密库,里面实现了众多的加密库;二是libssl,这个是实现ssl机制的,它是用于实现TLS/SSL的功能;三是openssl,是个多功能命...

2015-07-21 08:46:47 966

原创 linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数

一、linux 系统内核参数/etc/sysctl.conf文件常用参数net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目net.core.rmem_max = 8388608 #SOCKET读缓存区大小net.core.wmem_max = 8388608 #SOCKET写缓存区大小...

2015-07-21 08:46:28 84

原创 cas服务端和应用端证书整合配置流程

证书的配置主要分为两大步:服务端生成配置证书,应用端导入证书。SSO服务端生成keystore, 此文件用于tomcat/conf/server.xml中配置及导出证书;keytool -genkey -keyalg RSA -alias mlongbosso -dname "cn=passport.mlongbo.com" -keystore /home/ndoc/test/...

2015-07-20 10:13:09 160

原创 基于Lua+Kafka+Heka的Nginx Log实时监控系统

背景在我们的系统架构中,Nginx作为所有HTTP请求的入口,是非常重要的一层。每天产生大量的Nginx Access Log,闲置在硬盘上实在是太浪费资源了。所以,能不能把Nginx日志利用起来,实时监控每个业务的访问趋势、用户行为、请求质量和后端异常呢,这就是本文要探讨的主题。目的错误码告警(499、500、502和504);upstream_response_time超时...

2015-07-20 10:06:37 154

原创 使用 SPDY 配合 Nginx 或者 Node 加载文件的速度, 测试

单页面应用文件增多时, 存在轻微过多阻塞页面加载的情况, 比如这样:(对虽然可以考虑合并后调试, 但 RequireJS 合并并不快, 还要再考虑)想到的一个方案是 SPDY 的请求合并功能, 比如这里的例子, 没有明显的 Blockinghttps://www.modspdy.com/world-flags/参考目前 SPDY 的浏览器支持, 我原来以为可以在开发环境尝试的http://c...

2015-07-20 09:56:19 137

原创 Ruby执行shell命令的六种方法

Ruby执行shell命令的六种方法NOV 18TH, 2014在Ruby中,执行shell命令是一件不奇怪的事情,Ruby提供了大概6种方法供开发者进行实现。这些方法都很简单,本文将具体介绍一下如何在Ruby脚本中进行调用终端命令。execexec会将指定的命令替换掉当前进程中的操作,指定命令结束后,进程结束。12exec 'echo "h...

2015-07-20 08:54:18 619

原创 一个性能较好的jvm参数配置以及jvm的简介

一个性能较好的web服务器jvm参数配置: -server //服务器模式-Xmx2g //JVM最大允许分配的堆内存,按需分配-Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次gc后JVM重新分配内存。-Xmn256m //年轻代内存大小,整个JVM内存=年轻代 + 年老代 + 持久代-XX:PermSize=128m //持久代内存大小-X...

2015-07-20 08:51:46 112

原创 Nginx+Keepalived实现站点高可用

公司内部 OA 系统要做线上高可用,避免单点故障,所以计划使用2台虚拟机通过 Keepalived 工具来实现 nginx 的高可用(High Avaiability),达到一台nginx入口服务器宕机,另一台备机自动接管服务的效果。(nginx做反向代理,实现后端应用服务器的负载均衡)快速搭建请直接跳至 第2节。1. Keepalived介绍Keepalived是一个基于VRRP协议来...

2015-07-19 10:50:01 131

原创 nginx频率限制+python测试

      部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:首先nginx.conf里面添加如下内容:map ...

2015-07-18 17:57:04 142

原创 Bosun监控告警系统

       Bosun 是一个新型的监控和告警系统,由Stack Exchange团队打造,使用golang编写,支持定义复杂的告警规则,支持OpenTSDB、Graphite、Logstash-Elasticsearch 等数据源。bosun 将是 zabbix、nagios的有力竞争者。项目地址:https://bosun.org/转自运维生存与时间 ...

2015-07-17 08:39:43 638

原创 elk+redis 搭建nginx日志分析平台

           elk+redis 搭建nginx日志分析平台logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。其次,需要有个队 列,redis的list结构正好可以作为队列使用。然后分析使用elasticsearch就可以进行分析和查询了。我...

2015-07-17 08:39:33 99

原创 线上Java应用排查和诊断规范

标准做法一:OOM触发HeadpDump目的:OOM发生时,输出堆栈快照文件,供研发人员分析。在JVM中,如果98%的时间是用于 GC 且可用的 Heap size 不足2%的时候,将抛出 OOM 异常。配置操作:Resin/Tomcat 配置文件里追加 -XX:+HeapDumpOnOutOfMemoryError ,当 OutOfMemoryException 错误...

2015-07-17 08:39:24 100

原创 客户端的IP地址伪造、CDN、反向代理

    外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的:伪代码:1)ip = request.getHeader("X-FORWARDED-FOR")    可伪造,参考附录A2)如果该值为空或数组长度为0或等于"unknown",那么:ip = request.getHeader("Proxy-Client-IP")3)如果该值为空或数组长度为0...

2015-07-17 08:39:12 220

原创 三个实例演示 Java Thread Dump 日志分析

jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable   等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspended对象等待中,Object.wa...

2015-07-17 08:38:58 188

原创 使用ab对nginx进行压力测试

ginx以高并发,省内存著称。相信大多数安装nginx的同学都想知道自己的nginx性能如何。我想跟大家分享下我使用ab工具的压力测试方法和结果,ab是针对apache的性能测试工具,可以只安装ab工具。ubuntu安装abapt-get install apache2-utilscentos安装abyum install httpd-tools 测试之前需...

2015-07-16 08:36:39 177

原创 solr限制admin界面访问(端口限制和http授权限制)

solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。我们先看如何通过tomcat配置http授权限制。第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:<userusername="admin...

2015-07-16 08:36:20 1090

原创 Linux 命令神器:lsof 入门

      lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。有趣的是,lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关,它...

2015-07-16 08:35:58 108

原创 nodejs创建https

https的免费申请流程这篇文章包含3个主要内容:如何用nodejs创建https服务器;如何免费申请到ssl证书;nginx如何设置https服务器。如果想了解https原理部分,可以查看之前的文章介绍htts原理1、用Nodejs创建HTTPS服务器在Nodejs中,我们可以通过内置的https库,来实现HTTPS服务器。Nodejs的HTTPS使用文档...

2015-07-16 08:35:27 165

原创 基于nginx+nodejs的api,接口权限验证

      因项目的接口没权限验证,经常被误登录操作,产生脏数据,在这样的业务场景下,我思考了几套方案:      1.限客户端连接的ip      2.后端的接口做权限验证      3.前端做权限验证。      我是采用第三套方案,简单演示如下:      nginx+nodejs做一个入口权限认证,如下所示                  登录前:    ...

2015-07-16 08:30:23 1129

原创 Docker 监控

        目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。1、关于监控的内容监控宿主机本身监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。额外的,因为是docker的宿主机,还应该监控 容器本身的一些指标,如 :拥有的全部的容器数量...

2015-07-15 08:55:43 139

原创 基于Lua+Kafka+Heka的Nginx Log实时监控系统

背景在我们的系统架构中,Nginx作为所有HTTP请求的入口,是非常重要的一层。每天产生大量的Nginx Access Log,闲置在硬盘上实在是太浪费资源了。所以,能不能把Nginx日志利用起来,实时监控每个业务的访问趋势、用户行为、请求质量和后端异常呢,这就是本文要探讨的主题。目的错误码告警(499、500、502和504);upstream_response_time超...

2015-07-15 08:55:17 113

原创 OAuth 2.0 客户端,第 2 部分: 客户端凭据授权

概述OAuth 是一个开放的授权标准,允许客户端代表一个资源所有者获得对受保护服务器资源的访问权限。资源所有者可以是另一个客户端或最终用户。OAuth 还可以帮助最终用户将对其服务器资源的访问权限授权给第三方,而不必共享其凭据,比如用户名和密码。本系列文章遵从 RFC6749 中列出的 OAuth 2.0 授权框架。可以在 Internet Engineering Task Force 的...

2015-07-15 08:54:54 1048

原创 java导致linux负载过高的定位方法

定位java进程ID可以使用top或ps -ef |grep java![图片描述][1]根据进程ID找到最消耗资源的java pid比如第一步找到的进程ID为5431执行top -p 5431 -H![图片描述][2]打印java栈信息$ jstack -l 5431 > 5431.log在栈信息中定位具体问题将消耗资源的Java...

2015-07-15 08:54:35 251

原创 基于Zabbix + Docker开发的监控系统

原文地址:http://goquxiao.com/posts/2015/02/17/ji-yu-zabbix-dockerkai-fa-de-jian-kong-xi-tong/)背景团队所开发的持续监测网站/APP的产品,需要有一项监控功能,具体来说就是,对URL/域名进行周期性(小于1分钟)监测,并且能对异常事件进行实时告警。在最近这几个月,我一直将大部分时间和精力花在了设计开发这...

2015-07-15 08:54:18 128

mesos管理docker集群总结

           mesos环境搭建起来了,如下:                    采用master-slave模式,没带验证的管理,始终都有潜在的风险,但有些功能做得并不是深入,如管理slave上的主机,就没有多少深入的管理,发布应用也一样,并不是很直观指定这个应用发到哪台slave,对于发布的命令的也很单一,命令形式        以上是谈mesos管理集群的,虽说...

2015-07-14 09:26:10 258

原创 haproxy负载均衡

web_proxy server 192.168.20.112web1 server 192.168.20.137web2 server 192.168.20.140echo "192.168.20.137 > /usr/local/nginx/html/index.htmlecho "192.168.20.140 > /usr/local/nginx/html/index...

2015-07-14 08:53:25 121

原创 LVS的nat模型和DR模型的配置管理

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一;lvs的几种模型:    1、NAT模型;            特性:                      1、real server中的各服务器rip地址应该使用私有地址,有效隐藏内部服务器;  ...

2015-07-14 08:50:36 134

原创 centos 7安装docker两种方式

      第一种是采用yum 方式             yum install -y docker             docker pull centos 下载最新的centos镜象       第二种,手动方式      $ wget https://get.docker.com/builds/Linux/x86_64/docker-lates...

2015-07-14 08:25:52 107

原创 查找jvm最耗时的函数

1、首先找到最耗时的进程idtop2、再查找此进程内最消耗cpu的线程top -Hp172073、把线程id转成16进制,以便查找printf "%x\n"173424、打印jvm线程栈jstack 17207> a.tmp5、查找线程栈vim a.tmp红色箭头指示的就是此线程当前正在运行的方法转自独立的思考...

2015-07-14 08:25:09 419

原创 使用bamboo来实现负载均衡和服务发现

github地址:https://github.com/QubitProducts/bamboo1.1 下载bamboo镜像并放置私有registrydocker pull gregory90/bamboo:0.2.11docker tag gregory90/bamboo 192.168.1.103:5000/bamboodocker push 192.168.1.103:5...

2015-07-13 10:11:48 269

原创 使用haproxy-marathon-bridge实现服务发现和负载均衡

2 服务发现与负载均衡本地使用的是haproxy-marathon-bridge来实现负载均衡和服务发现2.1 原理marathon的restful api 有查看当前程序信息的接口:http://192.168.1.110:8080/v2/tasksdemo 10001 192.168.1.113:31001 192.168.1.115:31001 19...

2015-07-13 10:10:52 368

原创 发布docker程序到marathon

1 发布docker程序到marathon1.1 搭建私有docker registry1.1.1 安装docker regisrydocker pull docker-registrydocker run -t -p 5000:5000 docker-registry下载docker镜像并发布到私有registrydocker pull consol/tomcat...

2015-07-13 10:09:44 195

原创 marathon发布管理应用

打开marathonhttp://192.168.1.110:8080新建应用command: python -m SimpleHTTPServer $PORT调整应用数量 访问应用 停止应用删除应用重启应用 转自http://wiselyman.iteye.com...

2015-07-13 10:08:43 399

原创 mesos安装

1 Apache Mesos简介Apache Mesos据说是云计算的未来,利用Mesos可轻易实现一个PaaS云平台。请参考 http://mesos.apache.org/和http://mesosphere.com/查看详细2 Master节点安装规划192.168.1.110 master1192.168.1.111 master2192.168.1.112...

2015-07-13 09:28:19 192

前端路由,去验证码,拦载提示

      整套方案是2014年做的。      整套的应用架构是F5--->nginx--->F5----->app集群      1.其中nginx+lua+redis存客户信息,做路由      2.nginx+lua+共享内存做计数器,拦载客户用插件刷件      3.nginx+header+body+cookies做了七条规则的防机器码等恶意行为,...

2015-07-10 20:17:04 152

zabbix二次开发及app

       在zabbix原有的基础上加自动处理脚本,执行一些事务,如清理磁盘,重启应用,收集日志等。如下是架构出来的截图。       登录界面:               ...

2015-07-10 19:55:50 528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除