关于thrift,可能一般情况下用到的人不多,不过在类似于facebook这样的大型系统中,需要一个统一的数据接口去连接内部的各个子系统,这个时候中间件就必不可少了,thrift主要用于rpc类的中间件,当然自己定义理论上也可以用来做异步消息处理的底层,异步消息这方面成熟的开源产品还是很多的,比如rabbitmq之类的,大公司也大多数有参考或在使用自己开发的对应产品。

, , , ,

关于安全其实能讲的有很多,这里只是简单的记录一下我的iptables设定, 我开有22(ssh)服务,1194(openvpn,tcp)服务,80(http)web服务,443(https)web服务, 我在实体机器上的设定: #!/bin/sh iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i tap+ -j ACCEPT iptables -A INPUT -i tun+ -j ACCEPT iptables -A FORWARD -i tap+ -j [...]

, , , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 其实本人对vpn服务的搭建比较陌生,主要参考的还是这篇文章http://freshventure.wordpress.com/2009/12/22/在ubuntu上搭建openvpn服务器,并配合mac和windows的客户端/(需要翻墙) 在这里重新撰写一篇算是备份外加自己的整理,在最后还有一篇关于搭建ssh反向代理服务的简单说明。 首先安装openvpn: sudo apt-get install openvpn 然后拷贝ca证书,server证书和client证书的生成脚本到我们自己的配置路径下,还有样例的服务器配置文件也解压一份,捣鼓一番: cd /etc/openvpn/ sudo cp -af /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn gzip -d server.conf.gz 进入/etc/openvpn/easy-rsa开始生成根证书、服务器证书、和客户端证书,注意这一步最好以root身份执行,证书生成完了后把ca证书也就是根证书和你个人的客户端证书和私钥拿出来即可: 切换到root身份: cd /etc/openvpn/easy-rsa/ sudo -sH 清理环境构建配置目录: source ./vars ./clean-all 构建CA根证书,回答该回答的问题,国家代号和省一级的代号都是两个字符,中国是CN,当然你设个不存在的地方也没人来找你,不建议设置密码: ./build-ca 构建服务器证书,回答该回答的问题,不建议设置密码: ./build-key-server server 构建个人证书也就是客户端证书,建议设置密码: ./build-key client1 命令中的client1为你个人证书的名字可以随便,比如nick,axiong,chunge,lurenjia等等。 然后构建Diffie Hellman参数,这部可能要花几分钟时间生成随机数,你如果对安全比较在意可以在vars里设置为2048位的,这些主要是非对称加密算法里用来保证安全用的。 ./build-dh 在这些证书都生成完成后建议退出root身份。 在证书啥的都搞定了后可以开始搞服务器配置了: sudo vi /etc/openvpn/server.conf 服务器的配置没啥好多说的,偶这里就灰常没牙齿的拷贝一下freshventure的注释版,改改并加上收集来的资讯,适应我的配置了: # 写入你vps的公网ip地址 local 64.233.189.104 [...]

, , , , , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 varnish基本上是一个不错的squid替代品,个人研究和使用不多,在小型应用中出场的机率不大,不过在这里还是简单介绍一下在ubuntu下的安装配置。 sudo apt-get install varnish 软件就安装完了,配置的话需要配合你的应用服务,比如我的设置方式:让nginx监听在8081端口,而ip默认的80端口让给varnish来做第一道处理。 修改/etc/default/varnish配置文件: sudo vi /etc/default/varnish 将DAEMON_OPTS里的-a :6081改为-a :80 最后内容例如: DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G" 然后编辑你的varnish配置文件:/etc/varnish/default.vcl, sudo vi /etc/varnish/default.vcl 在我的应用中后端是本机的nginx监听8081端口则修改/添加: backend default { .host = "127.0.0.1"; .port = "8081"; } 我的这段backend名称为default,在后面的请求处理环节需要把指定域名的请求转发给我的backend: sub vcl_recv { if (req.request != "GET" && req.request != "HEAD" && req.request [...]

, , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 基本上现代的web应用都离不开danga团队的这款神器级的作品了,编译安装很简单,安装前记得memcached依赖于libevent库,可以参考之前php环境搭建那一节中对libevent的描述设置。 然后开始memcached的编译安装: wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz tar zxf memcached-1.4.5.tar.gz cd memcached-1.4.5/ ./configure --with-libevent=/usr/local make sudo make install 做一些常用命令的软链接,将一些启动脚本配置到系统路径: sudo ln -s /usr/local/bin/memcached /usr/bin/ sudo mkdir -p /usr/share/memcached/scripts sudo cp -af scripts/* /usr/share/memcached/scripts/ sudo chmod +x /usr/share/memcached/scripts/start-memcached sudo cp /usr/share/memcached/scripts/memcached-init /etc/init.d/memcached sudo chmod a+x /etc/init.d/memcached sudo update-rc.d memcached defaults 系统默认会去读取/etc/memcached.conf配置文件,这里有一份默认的配置文件样例: # memcached default config file # 2003 [...]

, , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 nginx实在是个非常出色的程序,能承担的角色也是千差万别,负载均衡,静态页面缓存,请求代理,在我这里的应用里,使用的还是它的传统方式,替代apache处理静态请求,并将动态请求转发给后端fast-cgi处理进程(php/python/java)处理。在nignx的前端使用varnish做静态缓存和请求转发。 注意:以下的安装扩展只是在我实验的测试机上做测试使用的,并不适用于通用的生产环境。 安装前准备,先准备好pcre和zlib这两个依赖。 wget http://downloads.sourceforge.net/project/pcre/pcre/8.02/pcre-8.02.tar.bz2?use_mirror=ncu tar jxf pcre-8.02.tar.bz2 wget http://www.zlib.net/zlib-1.2.4.tar.gz tar zxf zlib-1.2.4.tar.gz 预备一下安装后所需要用到的路径: sudo mkdir -p /var/log/nginx sudo mkdir -p /var/lib/nginx/tmp/client_body sudo mkdir -p /var/lib/nginx/tmp/proxy sudo mkdir -p /var/lib/nginx/tmp/fastcgi 安装的时候如果需要geoip的扩展支持的话去maxmind下载一下最新的免费数据库,安装一下libgeoip-dev开发库(http://wiki.nginx.org/NginxHttpGeoIPModule): #Get the free database of geo_city wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz #Get the free database of geo_coundty wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz sudo apt-get install libgeoip-dev #In other systems, [...]

, , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 同mysql一样php的环境也有不少定制需求,故也是采用源码安装方式。 在安装php环境前做一些周边的准备工作: 安装libevent库: 在目前的网络开发环境而言libevent几乎是现如今的新兴网络服务所必不可少的底层组件了,在此下载编译安装一下: wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz tar zxf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable/ ./configure make sudo make install 如果不想编译安装也可以直接安装源里的版本: sudo apt-get install libevent-dev 安装apache 尽管在如今的场合里apache的使用频率已经不太高了,但有些特定的应用还是必须用到它,故在此先编译安装一下apache: wget http://www.apache.org/dist/httpd/httpd-2.2.15.tar.bz2 tar jxf httpd-2.2.15.tar.bz2 cd httpd-2.2.15/ ./configure --prefix=/usr/local/apache2 --enable-deflate --enable-expires --enable-headers --enable-proxy --enable-proxy-http --enable-http --enable-rewrite --enable-so --enable-mods-shared=most --with-mpm=worker --with-port=8088 make sudo make install sudo ln -s /usr/local/apache2/bin/ab /usr/bin/ sudo ln [...]

, , , , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 mysql服务可以利用apt系统自动安装,不过由于后面的应用服务中定制化需求比较多在此还是选择手动下载源码安装。 1.下载源码 到http://dev.mysql.com/downloads/mysql/#downloads去下载目前的稳定版本的source源码,我用的是5.1的版本,据说5.4的版本性能更bt,等有空试试。 #美国镜像 wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mysql.llarian.net/ #台湾镜像 wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mysql.ntu.edu.tw/ 2.添加mysql用户和组: sudo groupadd mysql -g 48 sudo useradd -g mysql mysql -u 48 48是我本地自动安装时添加的id编号,手动安装就自己指定一下好了,通常系统服务的id都在1000以下。 3.预备一些数据路径: sudo mkdir -p /var/run/mysqld sudo chown -R mysql /var/run/mysqld sudo chmod -R g+wx /var/run/mysqld #数据路径 sudo mkdir -p /data0/mysql0 sudo mkdir -p /data0/mysql0/data0 sudo mkdir -p /data0/mysql0/innodb sudo chown -R [...]

, , ,

以下内容为个人配置笔记,仅供参考,请勿用于生产环境 vps系统的选型,个人选择的是ubuntu 9.10,其实网上更多的是CentOS,或者说RHEL的配置,个人而言对rpm的依赖关系有心理阴影,敝人用的桌面就是ubuntu的,习惯问题很重要,当然用debian也一样,apt绝对适合我这种懒人。 刚到手的vps基本上都是白纸一张需要自己精心调制。 基本环境的配置参考了TualatriX 的这篇配置略有出入。 1.新增一个日常用来管理的用户比如叫nick adduser nick 2.将用户加入sudo组,并启用sudo功能 gpasswd -a username sudo visudo在/etc/sudoers文件里root那行后面添加入你新加的管理: root ALL=(ALL) ALL nick ALL=(ALL) ALL 3.禁用root账户 passwd -l root 4.修改ubuntu的软件源 注意:你的主机在国外,用国外的源会更快而不是我们通常看到的国内的配置文章中所说的国内的源。 修改/etc/apt/sources.list: sudo nano /etc/apt/sources.list 我的/etc/apt/sources.list的配置: deb http://us.archive.ubuntu.com/ubuntu karmic main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu karmic-security main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu karmic-updates main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu [...]

, , ,

不知不觉的新的一年又要开始了,国内的互联网环境经过tg一年的洗劫又进一步变的惨不忍睹,ccav,光腚总局,只要是个zf的关系户都想来蹂躏一把这个刚刚兴起的行业。 不堪烦扰,抛弃当初貌似很中国很美好的.cn域名(vaxiong.cn)在国外新注册了域名(axiong.me),不在把自己的咽喉放在别人的刀俎之下。 就域名本身而言,运营成本最低的还是越卖越便宜的.com域名,诸位被迫背井离乡的网友们买.com还是比较划算的,偶是没有满意的.com才买了.me的域名。个人注册而言godaddy,name.com都可以, 我们所有采购的标准就是:1.尊重人权、隐私, 2.不受第三方的影响力和胁迫,3.稳定实惠. 如果是仅仅拿来写写博客不推荐用vps,毕竟相对来说费用还是比较贵的。可以使用虚拟主机,推荐mt(media template) 或者hm(HostMonster) 如果您需要构建互联网应用平台,或者像我一样做开发的,找个业余的高级玩具,那可以使用vps.购买的话选择余地很多Linode.com(基于Xen),RapidXen.org(基于Xen),ramhost.us(基于OpenVZ)都可以。 所有的计划都停当后就是掏银子买米买vps了。 PS: 备案?,我当年也备过,折腾过一茬,去年又开始折腾了,又要实名又要复印件,反正就是只准州官放火不许百姓点灯,种种政策都是在构建他们自己的利益垄断壁垒。互联网本是个言论自由和个性舒展的地方,你用GFW屏蔽信息为自己遮羞,蒙蔽不明真相的群众,难道你不知道防民之口,甚于防川的道理么?本来我不想理这些事情,但是你们封code.google,封sourceforge,封python,我们本来只是做技术的,难道我们掌握先进的技术也要拜你伟大的允许所赐么?你们以为封了技术了就能愚民,就能让百姓不知道你到底做过哪些龌龊的事么,可恶之举,可笑之极。

, ,

Switch to our mobile site