℃冻番茄's Blog

Feed Rss

半个月前buyvm kvm放货,因为事先写了脚本监控buyvm放货情况,凌晨放货,早上起来是收的email,抢的时候就只剩最后一个了,只是线路不太好,是he的。

刚买的时候并不稳定,应该是有不少人在做测试,就放了半个月,今天顺便付了一下下个月的账单。

新买的kvm准备用来做些垃圾站,赚些宝宝奶粉钱。

目前博客所在vps为buyvm 15$年,很稳定,nlayer 的线路,电信联通速度不错,不常抽!以后接着放博客和其它几个小流量企业站

上周新注册了一个域名 http://lhold.com 目前 还没想好用来做什么站,暂时放一个dedecms 集了些数据。

这周五回南昌过十一了,上星期电话抢的票,就是电话比较难打,定好后,晚上排队取票时非常happy!不怕票卖光了~~~~

备份脚本适用于国外的vps,备份速度快。非linux客户端方式上传,无需实时运行dropbox客户端,只需要上传数据时调用,更省资源!
dropbox上传并非采用的是linux客户端,而是网上一个curl上传的shell脚本,配合数据备份脚本实现vps数据的分卷压缩,上传到dropbox,从而实现vps上数据的异地备份。
采用分卷压缩是因为dropbox限制了单文件上传的大小。

uploader.sh 脚本下载:http://ye55.com/uploader.sh

#! /bin/bash
f=`date +%Y%m%d`
tar zcvf /home/backup/file/$f.tar.gz /home/wwwroot /home/sh /usr/local/nginx/conf/vhost /home/svn
cd /home/backup/file/
tar czvfp - /home/backup/file/$f.tar.gz | split -d -b 300m
echo 'Upload dropbox';
filelist=`ls /home/backup/file/x*`
for filename in $filelist
do
        sleep 1s
        sh /home/sh/uploader.sh dropbox账号 密码 $filename file/$f
done
rm /home/backup/file/* -rf
echo 'ok';
配置还是非常简单的,充分体现了nginx的强大与配置的简单,下面是大致的服务器结构图: 

应用的最前端是一台nginx服务器,所有静态的内容都由nginx来处理,而将所有php的请求都分摊到下游的若干台运行php fastcgi守护进程的服务器中,这样可以以一种廉价的方案来实现对系统负载的分摊,扩展系统的负载能力。

三台php fastcgi服务器的ip地址分别为:

172.16.236.110 , 172.16.236.111, 172.16.236.112

运行php fastcgi进程时,需要让php-cgi监听到服务器的局域网地址(分别如上所示),而不是之前一般都是监听的本地地址(127.0.0.1)。以172.16.236.110这台服务器为例:

了解更多

Ngnix出现高危漏洞,可远程执行代码:http://t.cn/am3yDl

Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码。影响版本:0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37。请各位站长检查服务器版本,尽快升级!!

目前博客运行在buyvm的openvz的15$/Y 的vps,还有二个月就要到期了,准备换buyvm的 256m kvm vps ,价格不贵,5$/m .

buyvm用过的这段时间里,非常稳定,速度不错,放个博客还是不错的。但货比较少,经常缺货。所以就写个脚本监控buyvm是否有货,网上已有热心网友提供了货源的json数据源,只要每小时获取后分析一下有没货就ok了。

如果有货的话,通过email的方式发送到我的gmail邮箱 ,因为手机是android系统,gmail邮箱可以实时的push邮件,当一有货就知道了,找台电脑就可以抢货了!

通知到有货后,脚本就自动在脚本文件头部加上exit,以后就不会再发邮件了,防止脚本不停的发信!

vim /home/sh/buyvm.php

<?php
$c=file_get_contents("http://doesbuyvmhavestock.com/automation.php?format=json");
$c=json_decode($c,true);
if($c[6]['qty'] > 0){
exitsh();
mail('phpd.cn@gmail.com','buyvm kvm 256m',$c[6]['name'].' : '.$c[6]['qty']."\r\nhttp://buyvm.net");}
function exitSh()
{
$file=file("/home/sh/buyvm.php");
$file[0].="\nexit;";
file_put_contents("/home/sh/buyvm.php",$file);
}

crontab -e

添加 一条crontab记录,让脚本每小时执行一次

01 * * * * root  /usr/local/php/bin/php /home/sh/buyvm.php

环境:
A、B的MySQL 数据库 版本同为5.0.24

A:主服务器
操作系统:Windows xp
IP地址:192.168.0.81
B:从服务器
操作系统:Windows xp
的IP地址:192.168.0.82

配置过程:
1、在A的数据库中建立一个备份帐户,命令如下:
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO test@’192.168.0.82 ‘
IDENTIFIED BY ’1234′;

建立一个帐户test,并且只能允许从192.168.0.82这个地址上来登陆,密码是1234。

在B Slave上做连接测试:

mysql -h 192.168.0.81 -u test -p

2、对A服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
server-id=1
log-bin=D:\server2\mysql\log-bin.log

server-id:为主服务器A的ID值
log-bin:二进制变更日值

了解更多

open  ~/Library/Preferences/ByHost/.GlobalPreferences.6F1617DF-DDD5-5F2D-ACA0-F7F3EE5F7B41.plist, 或者是.GlobalPreferences.*.plist类似格式的文件。

打开之后,删除com.zennaware.Cornerstone:2.0这条记录即可。

重新打开cornerstone,就又可以重新试用15天了

同样适用于lnmp0.7等一键安装脚本

经分析,是由于gcc无法找到libjpeg和png等库引起的,把lib64目录下的库文件放到lib下就ok了

cp -frp /usr/lib64/libjpeg* /usr/lib/
cp -frp /usr/lib64/libpng* /usr/lib/
cp -frp /usr/lib64/libldap* /usr/lib/

网站按功能进行分割,采用API方式对应用服务器提供服务

图片服务器,主要的作用是图片的保存、切图、缩放等操作。

后期网站访问量比较大的情况下,采用rsync,使多台图片服务器图片数据同步做集群。前台通过crc32计算调用不同的图片服务器,分摊图片服务器的压力。当数据量比较大的情况下也可以做分布式处理!

流程:

1 应用服务器接收到用户上传的图片

2 使用php的curl函数通过http把图片原封不动的传输到图片服务器。

3 通过参数,告诉图片服务器是否保留源图、切割缩放多大的尺寸等。

4 图片服务器接收到图片后,按参数进行图像操作,同时,把生成的图像放入年月日目录

5 file_md5得到图像文件的md5值,去数据库中搜索,看是否存在已有图片

6 如果存在的话,删除刚刚保存的文件,从数据库中直接返回真实的图片url地址(例:http://img.sm.com/2011/08/2/dfadfa.jpg)。

7 如果是新图片的话,把图片信息写入数据库 ,图像的md5做为ID号,通过hash id号分表保存。

8 图片服务器返回一个数组,数组中保存了处理了的图片的全部图片ID 及 url信息,借应用服务器使用及保存

公司新项目进入开发阶段,已把整个网站进行拆分,方便开发人员进行分配开发任务。因为搜索服务比较重要,所以先行开发,目前已完成搜索服务的构建。以后主站开发时,直接对接口进行开发就能实现商品的搜索功能了。

需求

通过关键词、分类、价格范围、商品sku等参数进行组合搜索

通过上架时间、价格等参数进行排序显示

方案

sphinx+libmmseg 做搜索引擎 mysql做数据源

php+SphinxClient做REST风格搜索接口

应用服务器通过搜索接口搜索数据时,接口只返回商品的ID号,然后由应用服务器根据ID号从cache中读取商品的完整信息。如果搜索出的商品被删除时,每页显示的商品数会减少一定的个数。

搜索更新策略

因为开始阶段商品等数量较少,每天重新做一次主索引,这样可以把删除的商品从索引中清除掉。

采用主索引+增量索引的方式,实现准实时搜索功能

每分钟新建一次增量索引,每天重新生成一次主索引,无需重启服务完成索引的更新!

后期词库整理

固定时间周期进行中文分词词库的新加分词工作,对商品所需的关键词进行分析整理添加,保证用户搜索时,提供的搜索结果更加精确!