lee的个人空间

    理论指导实践,实践验证理论

    正在浏览 架构 里的文章

    准备

    • nginx-0.8.x
    • pcre-8.10
    • zlib-1.2.5

    并解压到/opt/soft目录下


    准备nginx用户,并加入到www组中:

    #追加一个www组
    groupadd -f www 

    #追加一个nginx用户
    useradd -s /sbin/nologin -g www nginx

    编译nginx:以下每个参数看着是- 实际是两个横线,要替换下

    ./configure –prefix=/usr/local/nginx \ 

    –user=nginx –group=www \

    –with-pcre=/opt/soft/pcre-8.10 \

    –with-zlib=/opt/soft/zlib-1.2.5 \

    –with-http_stub_status_module \

    –without-http_fastcgi_module \

    –without-http_memcached_module \

    –without-http_map_module \

    –without-http_geo_module \

    –without-http_autoindex_module


    make;make install

    #编译启动文件
    vi /etc/init.d/nginx

    将下述内容拷贝其中:

    #!/bin/bash
    # v.0.0.1
    # create by jackbillow at 2007.10.15
    # nginx – This shell script takes care of starting and stopping nginx.
    #
    # chkconfig: – 60 50
    # description: nginx [engine x] is light http web/proxy server
    # that answers incoming ftp service requests.
    # processname: nginx
    # config: /etc/nginx.conf
    # 目录需要替换
    nginx_path=”/usr/local/nginx”
    nginx_pid=”/usr/local/nginx/nginx.pid” 

    # Source function library.
    . /etc/rc.d/init.d/functions

    # Source networking configuration.
    . /etc/sysconfig/network

    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0
    [ -x $nginx_path/sbin/nginx ] || exit 0
    RETVAL=0
    prog=”nginx”

    start() {
    # Start daemons.
    if [ -e $nginx_pid -a ! -z $nginx_pid ];then
    echo “nginx already running….”
    exit 1
    fi
    if [ -e $nginx_path/conf/nginx.conf ];then
    echo -n $”Starting $prog: ”
    $nginx_path/sbin/nginx -c $nginx_path/conf/nginx.conf &
    RETVAL=$?
    [ $RETVAL -eq 0 ] &&
    { touch /var/lock/subsys/$prog success $”$prog” }

    echo
    else
    RETVAL=1
    fi
    return $RETVAL
    }
    # Stop daemons.
    stop() {
    echo -n $”Stopping $prog: ”
    killproc -d 10 $nigx_path/sbin/nginx
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f $nginx_pid /var/lock/subsys/$prog
    }
    # See how we were called.
    case “$1″ in
    start)
    start
    ;;
    stop)
    stop
    ;;
    reconfigure)
    stop
    start
    ;;
    status)
    status $prog
    RETVAL=$?
    ;;
    *)
    echo $”Usage: $0
    {start |stop |reconfigure |status}


    exit 1
    esac
    exit $RETVAL


    #追加系统服务
    chkconfig –add /etc/init.d/nginx


    #分配执行权限
    chmod +x /etc/init.d/nginx


    #启动nginx
    service nginx start


    #停止nginx
    service nginx stop


    #重启nginx
    service nginx reconfigure


    #查看nginx状态
    service nginx status

     

    CPyUG本与我无关,鄙人连业余Python开发者也算不上,纯粹是打了个酱油,但这次线下活动依然有些收获

    第一位演讲者来自搜狐,讲述他逛贴吧直播贴而产生的idea——利用python脱水后实现的只看楼主功能,其中很多有语言专业性的东西没听懂,但给每个参会者一个启示:天才的idea都来自我们身边,只要有心将其实现就有可能成为用户真正需要的产品

    第二位同样来自搜狐,分享的主题pvinsight——搜狐内部针对日志访问的统计系统,利用“分时”与“分治” 的思想,定义了一系列有利于运算的数据结构,最终满足海量数据的处理需求。他的演讲内容与我的工作内容有很大共同点,我近期的任务是处理每天80G的日志量,并产生基于位置、用户行为的统计报表,以指导市场决策;基于此会后我找到演讲者,索要了联系方式,虽然他用python,我用java,但可以借鉴方法,毕竟他的方案经过考验。

    第三位演讲者来自天涯社区,分享的是当前非常火热的Nosql,现在探讨技术不沾点海量数据处理、云计算、分布式开发的边,你还真不好意思跟人打招呼。

    先前有看过一篇讲天涯系统架构的贴,不知靠谱不靠谱,贴出来大家鉴定:http://sudone.com/archie/tianya.cn.html ; 今天这位天涯兄弟讲的是利用Memlink缓存系统来应对每天上亿的pv请求,Memlink是一个纯粹的内存存储系统,与memcache有点相似,同样是在client端实现分布式算法(后来仔细一想:一主多从何来客户端分布算法?这位兄弟口误?),但memlink基于key-list存储,读写分离(读写分不同的端口),目前仅支持一主多从,这样设计可以极大的减小并发写带来数据不一致性的几率,但单点写毕竟会有性能瓶颈,达到写上限要scale-out就非常困难了;memlink支持数据dump到disk以及些redo日志实现数据持久化;后来这位仁兄介绍说天涯论坛中间层有基于key-list,key-value多种形式存储的综合体,key-list中存储定长的主键ID-list,然后在批量的从key-value缓存中获取内容,再返回给用户最终数据。总体感觉,这个项目定制化过强,客户端编程要求比较苛刻,可以参考实现方式,但在其他项目的实用性有待考证!

    我觉得还是第四位演讲者最给力,压轴的果然是在最后,我说过我打酱油的,python界牛人我听说过的不会超过两个,在会场偶遇的两位朋友提起压轴演讲者,业内尊称他教主。。哦。有眼不识泰山!曾服役于豆瓣,后来写了个网站,拉到了投资,成立了一个小团队;他分享的开发经验很实际,很受用,Q&A环节就能看出这人的个人魅力,其中讨论的技术细节我不清楚,但就认为这人是牛,有气场!恩。

    以后技术沙龙活动还是得多参加,多学习别人的经验!

    还有个事得提一下,我凭借69这个数字抽中了2等奖,获得了一枚搜狐公仔,多惊喜!!