1、Varnish简介 Varnish 是一款高性能且开源的反向代理服务器(Reverse Proxy Server),挪威最大的线上报纸 Verdens Gang 使用3台Varnish代替了原本的12台Squid, 性能比以前更好。Varnish 的作者 Poul-Henning Kamp 是 FreeBSD 核心的开发人员之一,他认为现在的电脑比起1975年已经复杂许多。在那个时代,存储媒介只有两种:记忆体与硬盘。但现在电脑系统的记忆体除了主记忆体外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情況而做到最佳化,但作业系统可以得知这些情況,所以这部份的工作有关交给作业系统处理,这就是 Varnish Cache 的设计架构。 一般來说,使用Varnish代替Squid的理由有三点: 1.1 Varnish采用了“Visual Page Cache”技术,在记忆体的利用上,Varnish 比 Squid 更具有优势,它避免了Squid频繁在记忆体、硬盘中交换文件,性能比 Squid 还高。 1.2 Varnish的稳定性高,进行相同工作的Squid服务器发生故障的几率似乎比Varnish高。 1.3 通过Varnish管理端口,可以使用正则表达式、批量地清除部分缓存,这一点是Squid不能具备的。 2、2010-04-26 Varnish 2.1.1 Released We have just released Varnish 2.1.1 – a bug fix and feature release of the Varnish 2.1 series. [...]
Archive for 四月, 2010
群众的力量是巨大的,群众的智慧是无穷的。其实这次的需求就让我体会到这句话的意义。 现有一需求,需要把我们手机网站的cookie信息记录到access.log里,数据挖掘部门需要根据这个来统计用户行为。其实我还真没有这样记录过日志,后来百度了一下,发现Nginx确实很强大。 具体实现看配置: server { listen 80; server_name 192.168.1.101; #setting cookie log #if ( $http_cookie ~* "wap_auth=(.+)(?:;|$)" )如果要对应cookie名称,可以这么做 if ( $http_cookie ~* "(.*)$") { set $wap_cookie $1; } index index.php index.htm index.html; add_header Load-Balancing $server_addr; root /server/www/apps/wap_v2; rewrite ^/css/(.*)$ /media/css/$1 last; location /logs { alias /data/nginx/logs/; } location ~* .*\.(php|html)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index [...]
1、目前网站图片服务器结构如下: 2、现有结构说明 2.1 mount目录说明 所有前端web服务器都通过nfs挂载3台图片服务器export出来的目录,以接收web服务器PHP进程写入的图片。然后image1挂载另外两台图片服务器的export目录到本地给nginx对外提供访问。 2.2 用户上传图片说明 用户通过Internet访问页面提交上传请求post到web服务器,web服务器处理完图片后由php拷贝到对应的mount本地目录。 2.3 用户访问图片说明 用户访问图片时,通过image1这台图片服务器来访问通过2.1里边说明的目录以访问对应目录里边的图片。
1.备份介绍 这次备份的对象是我们线上BBS数据库服务器,原计划是直接每天晚上DUMP一次。后来由于数据量庞大,实施后,发现每天晚上我都能准时收到手机报警说BBS取不到页面,估计是备份的时候数据库服务器压力大造成数据库没有响应页面报错。所以不得不改变备份方式。 改变后的方式是:为BBS配置一个从库,然后每周日晚上把同步后的从库数据目录用Rsync同步到备份服务器上完全备份一次,同时每天晚上把主库上的所有BINLOG都增量备份到备份服务器上。这样出现问题时我们能利用完全备份和里边的position加上BINLOG把数据库恢复到出问题的点上,尽量减少损失。 2.备份脚本 2.1 主库备份BINLOG脚本 #!/bin/sh DATETIME=`date +%Y%m%d` passwd=password BINLOGDIR=/server/soft/mysql/data APPDIR=/usr/local/shell Get_Index(){ if [ -f "${APPDIR}/mysql-bin.index" ];then rm -f ${APPDIR}/mysql-bin.index fi for filename in `cat ${BINLOGDIR}/mysql-bin.index|sed ‘s/\.\///g’` do echo ${filename} >> ${APPDIR}/mysql-bin.index done } Send_data(){ expect -c " set timeout 36000; spawn rsync -rpogtv –progress –files-from=${APPDIR}/mysql-bin.index ${BINLOGDIR}/ weihuzu@192.168.1.55:/data1/db_backup/bbs_backup/binlog/ expect { \"*yes/no*\" {send [...]
这次的需求其实很简单,就是希望把不在root下的文件要能让web访问的到,其实完全可以用alias来解决,但是在测试的过程过发现在swftool目录下,其实还有PHP的请求,后来经过一个开发工程师的提示,采用动态root解决了问题。 server { listen 142.24.77.217:80; server_name t.izhoufeng.com tuiguang.izhoufeng.com; index index.php index.htm index.html; set $root /server/www/izhoufeng_v3/apps/vehicle/tuiguang/app; if ($request_uri ~* ^/che/swftool/(.*)$) { set $root /server/www/izhoufeng_v3/apps/media; } location /js { alias /server/www/izhoufeng_v3/apps/media/js; } location /css { alias /server/www/izhoufeng_v3/apps/media/css; } location /images { alias /server/www/izhoufeng_v3/apps/media/images; } location /tmp { alias /server/www/izhoufeng_v3/apps/media/upload/tmp; } location /upload { alias /server/www/izhoufeng_v3/apps/media/upload; } [...]
Varnish的缓存清除非常复杂。无论是Varnish的清除方式还是清除时候使用的语法规则等,都是比较复杂。为了理解他,我花费了不少时间,现在我很高兴我知道怎么来解释给大家听了。 1、Varnish有两种方式来清除缓存,其中一种方式是通过命中对象的单一变体,所以在他命中一个没有压缩的对象的时候他不能清除一个已经压缩的对象。这个方式也就是强制过期(forced expiry),他是通过设置你想清除的对象的TTL为0去强制它过期。VCL设置如下: acl purge { "localhost"; "192.0.2.14"; } sub vcl_recv { if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } lookup; } } sub vcl_hit { if (req.request == "PURGE") { set obj.ttl = 0s; error 200 "Purged."; } } sub vcl_miss { if (req.request [...]
1、Varnish简介 Varnish 是一款高性能且开源的反向代理服务器(Reverse Proxy Server),挪威最大的线上报纸 Verdens Gang 使用3台Varnish代替了原本的12台Squid, 性能比以前更好。Varnish 的作者 Poul-Henning Kamp 是 FreeBSD 核心的开发人员之一,他认为现在的电脑比起1975年已经复杂许多。在那个时代,存储媒介只有两种:记忆体与硬盘。但现在电脑系统的记忆体除了主记忆体外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情況而做到最佳化,但作业系统可以得知这些情況,所以这部份的工作有关交给作业系统处理,这就是 Varnish Cache 的设计架构。 一般來说,使用Varnish代替Squid的理由有三点: 1.1 Varnish采用了“Visual Page Cache”技术,在记忆体的利用上,Varnish 比 Squid 更具有优势,它避免了Squid频繁在记忆体、硬盘中交换文件,性能比 Squid 还高。 1.2 Varnish的稳定性高,进行相同工作的Squid服务器发生故障的几率似乎比Varnish高。 1.3 通过Varnish管理端口,可以使用正则表达式、批量地清除部分缓存,这一点是Squid不能具备的。 2、Linux 系统安裝 Varnish 的过程: 2.1 首先建立www用戶和组,以及Varnish缓存存放目录: sudo /usr/sbin/groupadd www -g 48 sudo /usr/sbin/useradd -u 48 -g www www sudo mkdir -m 755 [...]
网络公司内部办公网络架构设计 1、网络架构图如下: 2、设计意图: 网络刚开始筹建的时候,设备的型号如上图已定,所以在现有设备的前提下,我对自己提了几个小要求: 2.1 要把部门与部门之间按照逻辑结构来分开VLAN。 2.2 技术部门和财务部门内部机器要进行安全控制。 2.3 PCserver机器能分配公网IP。 2.5 尽量避免设备单点,保证PCServer能尽量对外服务。 2.6 能对内部私网测试机器能对外开放部分需要开放端口。 2.7 在AR3831有问题的时候,技术部门能切换网关上网。
上次我把我的一台服务器放到唐山后,有几个朋友老找我要空间,给了他们空间后,事情还没有完,比如老是忘记密码或者要修改FTP的登录密码,很是麻烦!于是我就在想Serv-U是否也有像proftpd那样使用数据库来存储用户和密码信息的功能,我到网上找了找,真还有,而且我在机器上实验都成功了,再加上php做的web用户界面,终于实现了他们自己可以修改密码,查看空间使用等信息了,省了不少事情,而且很COOL! 具体步骤记录如下: 1、运行MSSQL企业管理器,新加数据库ServU,新建SQL登录账号ServU,密码xxxx,指定为数据库的dbowner,指定默认数据库为ServU 2、在企业管理器中选中数据库ServU,进入顶部菜单 工具——查询分析器,将下面”建表SQL语句”后面的所有内容复制到查询分析器中运行 4、创建系统DSN,名称为ServU,指向SQL Server的数据库ServU 5、在Serv-U Administrator里面新建域Simple Domain,使用ODBC存储,在树形菜单中选中Simple Domain,点击右侧控制面板上部的’ODBC’ 选项卡,在下面第1、2、3格中分别填入系统DSN的名字、使用的账号、密码,点应用。
其实很早就有写BLOG的想法,甚至可以追溯到从BLOG技术出来的第一天。但是很不幸,我没有。我从网络获取了我想得的很多东西,诸如:电影、新闻、文章、技术甚至包括我的思想和我现在价值观、人生观等,但是我从来没有给网络贡献过我自己的东西,留下痕迹太小太少。今天终于压下键盘,想给自己留下点什么,不说贡献什么这么伟大,但愿能做到教育那么一两个人这么渺小,或许其中包括我自己。 有想法了就要实施,首先就要找个BLOG系统,问了好几个朋友,无一例外的都说是WordPress。有句广告词叫“大家好才是真的好!”,我相信我这几个好友的实力与推荐,说做就做了! 下边开始做的时候,我终于可以点题了,发现我自己进入了自己设下的一个圈套,同时也如我第一段说的,也教育了我自己。 1、下载WordPress代码 http://cn.wordpress.org/ 2、创建FTP,建立WordPress表 insert into ftp表 values(’12′,’username’,'password’,’65533′,’65533′,’serverdir’,’ /sbin/nologin’,”,”,”); create database WordPress表 default character set utf8 default collate utf8_unicode_ci; 说明:我的服务器上的FTPServer是用的MySql存储的虚拟用户。至于这个FTPServer的安装配置文档,我以后共享出来。 3、建立Nginx虚拟机,并重启Nginx使配置生效 server { listen 80; server_name blog.hiphp.com; add_header Load-Balancing $server_addr; access_log logs/access_blog.hiphp.com.log access; location / { root /blog目录/; index index.html index.htm index.php; } #error_page 404 /404.html; # redirect server error pages to the [...]