
网站架构
jiedushi
大数据10年左右工作经验,喜欢工作中遇到的问题与解决整理到博客
展开
-
DDoS deflate - Linux下防御/减轻DDOS攻击
<br />互联网如同现实社会一样充满钩心斗角,网站被DDOS也成为站长最头疼的事。在没有硬防的情况下,寻找软件代替是最直接的方法,比如用iptables,但是iptables不能在自动屏蔽,只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件:DDoS deflate。<br />DDoS deflate介绍<br />DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限 制时,该程序会通转载 2010-06-11 11:49:00 · 592 阅读 · 0 评论 -
puppet学习积累
一 puppet简介 puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一原创 2010-12-29 16:26:00 · 2674 阅读 · 0 评论 -
puppet命令与配置
<br />一、命令<br />puppet 用于执行用户所写独立的mainfests文件<br />用法:<br />puppet [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]<br />[--detailed-exitcodes] [-l|--logdest ]<br /># puppet -l /tmp/manifest.log manifest.pp<br /><br />puppetd 运行在被管理主机上的客户端程序<br />用法:转载 2010-12-30 11:21:00 · 1309 阅读 · 0 评论 -
支持更多客户端,puppet之mongrel+nginx模式
<br /> <br /><br />优点<br />*性能:nginx因为精简,运行起来非常快速,许多人声称它的比pound更高效。<br />*日志,调试:在这两个方面,nginx比pound更简洁。<br />*灵活性:nginx的处理SSL客户端验证是在应用层上实现的,而不会终止SSL连接。<br />*nginx可以拿来即用, 不需要像pound打补丁,同时配置的语法也很直观。<br /> <br />缺点<br />一但在服务端使用puppetca进行sgin以后,无法主动在服务端撤销授权,<b转载 2010-12-30 11:31:00 · 1282 阅读 · 0 评论 -
Tcmalloc 优化 Nginx Mysql
下载google-perftools-1.6.tar.gzwget http://google-perftools.googlecode.com/files/google-perftools-1.6.tar.gztar zxvf google-perftools-1.6.tar.gz执行./configuremake && make installecho "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.confldconfigNginx 优化编译ngi转载 2011-01-10 09:37:00 · 1594 阅读 · 0 评论 -
自定义方式实现nginx的url hash
<br />使用NginxHttpUpstreamRequestHashModule的方式,增加或减少机器时所引起的hash全部错乱的问题还是很令人担心,所以经过一段时间细致思考,觉得由自己手工制定并实现url hash规则,然后利用nginx的location标签或if语法来实现来得更为灵活,可操作性和可用性会大大加强。不过配置就稍显复杂了,也需要程序方面的支持。<br />使用这种环境,主要需要考虑链接形式,链接形式不能够是/xxx.jsp?id=1这样的带有?的,否则处理起来会很复杂,需要使用rewr转载 2011-03-05 16:58:00 · 5137 阅读 · 0 评论 -
nginx做图片访问分发
<br />nginx version: nginx/0.8.33<br />需求如下:<br />http://img.test.com/20100330/80/01/12614801/a.jpg ->a机器<br />http://img.test.com/20100330/60/01/12614801/a.jpg ->b机器<br /><br />url规则是:http://域名/日期/1级存放目录/2级存放目录/图片文件<br />我现在是想判断url的1级目录字段,(我的1级目录字段是0-9,a-转载 2011-03-05 17:16:00 · 3579 阅读 · 0 评论 -
优化AWSTATS性能的7个建议
对于一个访问量巨大的网站来说,使用awstats来分析其日志是一件很痛苦的事情,这往往需要耗费很多时间才能得到一个结果,偶尔还会让机器内存耗尽。在awstats的文档中,找到几个关于性能优化的建议,如下:关掉DNSLookup(DNSLookup不能设置为1). 虽然这样你会丢失一些关于访问者的国家信息,但是我觉得这无关紧要,大部分网站的访问者集中在国内。这样能给awstats性能带来小小提升。 小心使用这三个参数: URLWithQuery, URLReferrerWithQuery ,URLWithAn原创 2011-05-09 11:06:00 · 1861 阅读 · 0 评论 -
将awstats分析日志结果导入mysql
利用awstats分析web日志的结果只能导出为html或者pdf文件格式,想要导出为其他文件或者对分析结果再分析,例如对用户行为分析则显得有些力不从心,这就需要用到将awstats分析结果导入到mysql数据库中,利用sql语句进行分析或者导出为其他格式一、 准备工具1 aw2sql 下载地址 http://sourceforge.net/projects/aw2sql/ 2 DBI、Data-ShowTable、DBD-mysql (假设你已安装完perl和mysql数据库)DBI(原创 2011-05-12 14:42:00 · 2820 阅读 · 1 评论 -
keepalived+nginx双网卡服务器双机热备
平时在网上看到的大部分都是用keepalived对服务器的一个ip做热切换,在虚拟机做的测试也是如此,不过在去新浪面试云平台系统工程师的过程中,面试官针对实际应用问了我一个问题,问题是用keepalived如何做对双网卡服务器网卡检测与web服务检测,为没遇到过这种情况不知道该如何回答,后来在网上搜索资料,看了keepalived权威指南,有这么一段 如果不使用 VRRP Sync Groups 如果keepalived 主机有两个网段,每个网段开启一个VRRP 实例,如果对外的网段出现问题,VRRPD认为原创 2010-12-25 15:24:00 · 6808 阅读 · 0 评论 -
OSI七层网络模型与TCP/IP四层网络模型
<br />1. OSI网络分层参考模型 <br /> 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况。为了保证转载 2010-12-22 14:17:00 · 939 阅读 · 0 评论 -
nginx的upstream目前支持5种方式的分配
<br />1、轮询(默认)<br />每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。<br />2、weight<br />指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。<br />例如:<br />upstream bakend {<br />server 192.168.0.14 weight=10;<br />server 192.168.0.15 weight=10;<br />}<br />3、ip_hash<br />每个请求按转载 2010-06-11 11:05:00 · 735 阅读 · 0 评论 -
多台memcache 研究
<br />第一种方法是通过设置特殊key前缀实现分布,基本可以实现memcache和key的一对多关系,好处在于不会混淆,代码如下:<br /> <br /><br /><?php<br />$key='en_key2';<br />//print_r(mem_arr($key));<br />$mem_arr=mem_arr($key);<br />$mem = new Memcache;<br />$mem->connect($mem_arr['host'],$mem_arr['port']);<br转载 2010-12-04 10:09:00 · 1121 阅读 · 0 评论 -
精彩PuTTY 中文教程
我的这些文字是从这几年来的 PuTTY 使用经验中慢慢得来的,也不仅仅是介绍 PuTTY,还包括了一些相关的软件,比如:优秀的 FTP 工具 FileZilla、功能强大的 SFTP 客户端 WinSCP。 杂七杂八的乱说了一些,这里把大致内容罗列如下: 最简单的使用,登录 SSH 主机 中文乱码的处理 PuTTY 常用配置的说明 复制、粘贴 保存会话 注销 自动登录用户名 自动设置环境变量 设置代理服务器 自动执行命令 备份、删除 PuTTY 的设置PuTTY 的 X11 转发如何用 PuTTY 建立转载 2010-10-19 10:47:00 · 1401 阅读 · 0 评论 -
Linux系统手动安装rz sz 软件包
定制安装的linux可 能没有把rzsz包安装到系统,这对用securecrt这 样的windows工具传输文件特别不方便。为了使用这个方便的法门,可以手动安装之。也可以直接用Yum安装yum -y install lrzsz1、 下 载软件 rzsz-3.48.tar.gz。登录linux, 用命令wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。2、解压 tar zxvf rzsz-3.48.tar.gz3、安装 cd rzsz-3.转载 2010-10-19 10:44:00 · 2592 阅读 · 0 评论 -
linux下查看nginx,apache,mysql,php的编译参数
<br />有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法<br /><br />nginx编译参数:<br />#/usr/local/nginx/sbin/nginx -V<br />nginx version: nginx/0.6.32<br />built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)<br />configure arguments: --user=www --group=www --prefix=/usr转载 2010-10-21 11:04:00 · 697 阅读 · 0 评论 -
解决Linux中出现Too many open files
<br /><br />前几天查看VPS的php-cgi和nginx的日志都出现Too many open files这样的错误,原因是file-max默认值(1024)太小了,要解决这个问题,只要更改file-max的大小就可以.<br />用ulimit修改了一下:ulimit -n 10240<br />这样就可以将打开文件数从1024提高到了10240,但重启了VPS,就会恢复默认大小了..要永久的改变file-max值,可以root身份执行下列命令# echo "10240" > /p转载 2010-12-14 16:41:00 · 1047 阅读 · 0 评论 -
单服务器如何应付每秒75万次查询
大多数大规模Web应用程序都使用MySQL+Memcached架构,其中许多应用也同时使用了NoSQL数据库,如TokyoCabinet/Tyrant,也有一些人全部放弃MySQL,转投NoSQL的怀抱,曾经有人将这称为NoSQL运动,因为NoSQL数据库在处理一些简单访问模式,如主键查找时,比MySQL的表现更好,大多数Web应用程序的查询都很简单,因此这看上去是一个很合理的决定。和许多其它大规模网站一样,我们的DeNA(我于2010年8月离开Oracle,加盟了日本最大的社交游戏平台提供商DeNA)多年翻译 2010-10-30 15:19:00 · 2430 阅读 · 0 评论 -
APF:Linux下强大的防火墙组件
什么是APF?<br />APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptables的规则,易于理解及使用.可算是Linux使用较多的防火墙.APF的配置参数众多,有效利用这些配置参数可加强你的服务器安全,APF应该在每一台Linux服务器中得到应用.安装APF<br />1.下载最新的安装包并解压缩,APF项目详细信息.<br />#cd /usr/local/src<br />#转载 2010-12-22 13:53:00 · 1733 阅读 · 0 评论 -
CentOS 安装nagios 服务器端
一.建组建帐号groupadd nagcmduseradd apacheuseradd nagiosusermod -G nagcmd nagiosusermod -G nagcmd apache二、安装 nagios./configure --with-command-group=nagcmdmake allmake installmake install-initmake install-转载 2011-06-03 11:24:00 · 1329 阅读 · 0 评论 -
nagios 客户端安装
( 安装到 被监控的机器上)新增用户和组useradd nagiosgroupadd nagcmd(如果安装中报没有c编译器,就 yum install gcc)下载nagios插件wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz转载 2011-06-03 11:23:00 · 5708 阅读 · 0 评论 -
centos5.5中安装drbd笔记
DRBD(Distributed Replicated Block Device),分布式复制块设备,是一种通过TCP/IP网络实现块设备数据实时镜像的方案。利用这种方案,单一主节点模式(single primary mode)双机系统能够实时地将业务数据保存在主备节点的磁盘中,正常情况下两个节点的数据是一模一样的。HeartBeat在此是用来做热备切换的,两节点间通过心跳线连接,如果主节点死机的话,可以通过HA将DRBD快速切换到另外一个节点,同时抢占虚拟IP,并启动MySQL,对MySQL客户端来说,只原创 2011-04-18 11:13:00 · 1631 阅读 · 0 评论 -
centos5.5+nginx0.9.5+mysql5.5.9+php5.2.13 安装笔记
本篇中nginx、mysql、php都会被安装在/usr/local/目录下,它们的配置文件和日志等都在它们的安装目录下;mysql的数据库数据放在/data/mysql下,网站数据放在/data/www下。系统准备和依赖程序库安装yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel fr原创 2011-03-03 14:57:00 · 1611 阅读 · 0 评论 -
ssh批量上传文件
上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话,很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。一,scp上传不要输入密码如果要用scp来上传文件,第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。ssh不用输入密码的步骤(1)在本机上生成i转载 2011-11-28 11:00:25 · 2845 阅读 · 0 评论 -
编译php错误 make: *** [ext/mysqli/mysqli.lo] Error 1
这个是在编译php的时候执行make的时候出现的,前面./configure是没有问题的/usr/local/src/php-5.3.5/ext/mysqli/mysqli.c: In function 'zm_startup_mysqli':/usr/local/src/php-5.3.5/ext/mysqli/mysqli.c:644: error: 'MYSQL_RPL_MA转载 2011-11-11 15:35:48 · 13701 阅读 · 0 评论 -
LINUX下JAVA+TOMCAT6+APR安装和优化
LINUX下JAVA+TOMCAT6+APR安装和优化当前内核环境:Linux 2.6.18-164.el5 x86_64 (Centos 5.4_x64)安装前准备–下载软件安装包(jdk,apr,tomcat):mkdir -p /data/source/data/sourcewget http://10.0.0.221/mysoft/jdk-6u21-li转载 2012-01-17 11:17:08 · 3484 阅读 · 0 评论 -
让nginx日志中打印出通过f5跳转的内网请求的源ip
如果内网请求是从f5跳转到nginx上的话,默认的nginx日志配置只有$remote_addr,因此只会让nginx的access.log打印出f5的ip(即反向代理服务器的IP地址)而不会打印出源ip的。需要知道源ip的话则需要做两个步骤:1:在log_format里面添加$http_x_forwarded_for参数。如下: log_format main '$ht转载 2012-01-18 10:23:23 · 3200 阅读 · 0 评论 -
Redhat Linux NFS配置
NFS简介:NFS是网络文件系统的简写(network file system),主要用在linux或unix环境中,是有sun公司开发,并于1984年推出的一个RPC服务系统。NFS功能介绍:他可以将多个目录或者单个目录进行发布,例如我们在网刻系统的时候可以用NFS来共享光盘镜像,NFS是以发布目录的方式将文件进行发布,而客户端是以挂载的方式进行访问。客户端可以节省本转载 2012-03-08 16:23:46 · 3431 阅读 · 0 评论 -
ubuntu 中搭建gitlab方法
1 首先需要使用root用户登录系统,更新与升级系统# run as rootapt-get updateapt-get upgradeapt-get install sudo2 安装编辑器vimsudo apt-get install -y vim3. 安装gitlab 依赖的软件包sudo apt-get install -y build转载 2013-04-10 11:02:00 · 8174 阅读 · 2 评论 -
centos 6中安装gitlab方法
GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便原创 2013-04-23 16:58:13 · 17242 阅读 · 5 评论 -
how to launch in a month scale to a million users
These are case studies.I will talk about my last two startups where I used a lot of techniques to build them quickly and scale them up. Here I explore different techniques I used to architect them转载 2011-10-21 10:42:54 · 911 阅读 · 0 评论 -
分布式文件系统MooseFS的部署安装
概述:MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色: 1 管理服务器managing server (master) 2 元数据日志服务器Metalogger server(Metalogger) 3 数据存储服务器data转载 2011-10-09 17:07:37 · 1574 阅读 · 0 评论 -
DRBD Primary/Primary using GFS
<br />My goal by using DRBD as Primary/Primary with GFS is to load balance a http service, my servers looks like the following:<br /><br /> <br /><br />i use the GFS partition as document-root for my webserver (Apache).<br />maybe it’s better to use SAN as转载 2011-04-19 14:00:00 · 3187 阅读 · 0 评论 -
几种网络负载均衡方法比较
现在网络中常见的的负载均衡主要分为两种:一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,也有类似于LVS、Nginx、HAproxy的基于Linux的开源的负载均衡策略,商用负载均衡里面NetScaler从效果上比F5的效率上更高。对于负载均衡器来说,不过商用负载均衡由于可以建立在四~七层协议之上,因此适用面更广所转载 2011-06-24 13:28:00 · 3830 阅读 · 0 评论 -
AWStats的千万级日志解决方案
<br />awstats在进行日志统计时,<br />命令行统计增加: -databasebreak=day <br />报表输出时增加: &databasebreak=day&day=DD <br />即可按天进行统计, 解决按月统计,归档数据过大导致统计过慢/失败的问题。<br />问题:<br />很多网站在流量从10万级增加到百万级以后就放弃了awstats作为统计,具体表现就是到月底的时候,统计数据会运行1天都运行不完。于是就改为webalizer或者analog了。其实这并非awstats统计转载 2011-05-09 11:02:00 · 1229 阅读 · 0 评论 -
ESI+varnish页面片段缓存
<br />对于片段缓存,业界有成熟的解决方案,还有一个所谓的W3C标准:ESI(Edge Side Include) 。<br /> <br />ESI本身没有什么,只是一个XML的标签集合。ESI和SSI(Server Side Include)很相似,做过ASP开发的都熟悉这么一个标签:<!--#include src="header.inc" --><br />IIS碰到这么一个标签后,会把header.inc里面的东西合并到当前的页面,这样做的好处是header.inc本身可以复用了,你可以在多个转载 2011-05-09 08:32:00 · 5928 阅读 · 0 评论 -
AWSTATS性能优化
<br />awstats是一款日志分析统计程序, 深受广大群众的喜爱。 其拥有较好性能以及丰富的分析结果。但是对于一些大访问量的网站而言,其统计速度仍然远远显得不够。<br /><br />之前看过awstats官方的优化建议 awstats benchmark(中文翻译在这里), 除了DNSLookup此参数影响较大外,其他的一些参数优化并不能带来非常明显的性能提升,当然这些也是有必要去做的。<br /><br />awstats官方给出的建议是当访问量超过 4,000,000/月时,推荐你使用Anal转载 2011-05-09 10:58:00 · 1178 阅读 · 0 评论 -
centos5.6 64位下安装配置gearman
1 准备需要的软件 boost 1.43 安装gearmand需要boost 1.37以上版本 下载地址http://sourceforge.net/projects/boost/files/boost/1.43.0/boost_1_43_0.tar.gz/download原创 2011-07-21 14:29:35 · 2457 阅读 · 0 评论 -
Ganglia安装详解(CentOS_5.5_Final版)
1. 安装rrdtool 1.1. 安装依赖包 Ø 拷贝CentOS软件包将CentOS安装光盘中的rpm包拷贝到/root/下,以备使用。Ø 安装zlib开发包rpm -ivh /root/CentOS/zlib-devel-1.2.3-3.x86_64.r转载 2011-08-08 16:29:42 · 3094 阅读 · 0 评论 -
LVS负载均衡的三种模式和八种算法总结
三种LVS负载均衡模式调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。LVS负载均衡模式---1.NAT模式NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网转载 2011-08-11 11:41:17 · 6506 阅读 · 2 评论