LAMP架构——我的工作心得
创始人
2024-07-23 16:30:23
0

 

LAMP 

图-LAMP

  09年末入创业型小公司,技术岗位摸爬滚打一年多,10年末有幸加盟大型互联网公司,在解决了终身大事之后,闲来之时有意总结工作中所思所想,于是有了这一系列文章,技术不精,文笔粗糙,贻笑大方了。本文是系列文章中的第一篇,主题在于LAMP架构中的L组件。

  为避免歧义,本系列文章中的LAMP是指Linux+Apache+MySQL+PHP。LAMP、JAVA/J2EE、.NET是当前web架构的三足鼎立。LAMP架构相比于JAVA/J2EE,其有轻量,快速部署等明显优点;跟.NET相比,其具有跨平台,高性能低价格等优点。如果你的企业时间有限,成本控制意识强烈,LAMP架构是你最好的选择。本系列文章主要关注LAMP组件本身的配置优化问题,对于应用程序的优化则不在我的讨论范围之内。

  我的第一份工作是在一家小型的创业型的公司做服务器端程序开发。公司主要业务是SNS网页游戏的开发,现在线上游戏也有好几个,由于各方面原因,游戏都不怎么成功,不过回忆总结那段时间,还是学到了不少东西。当时公司的开发服务器、运营服务器上的LAMP环境是我搭建起来的,由于经验有限,当时只要系统跑起来就OK了,并没有考虑过多的性能优化。后来随着在线人数的激增,才慢慢去做一些优化的工作。

  关于L,有个版本的问题,当前Unix-like版本实在太多了。选择什么版本作为我们服务器的系统?我当时选择了CentOS。出于免费的原因,我们不去考虑红帽的各种企业版。CentOS 是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。而且工作之前我有两年多的Fedora使用经验,Fedora和CentOS的关系,让我更加坚定的选择了CentOS。

  由于是回忆总结性质的文章,我不打算把LAMP的各版本号全部都列出来,对于我这篇文章,并不妨碍讨论。几乎所有的linux版本都会包含LAMP,从这个意义上说安装配置LAMP环境是轻而易举的。安装的简便性使人误以为这些LAMP组建会自动顺利的运行,这往往事与愿违。最终,应用程序的负载会超过后端服务器的自带的设置的处理能力。因此,自己完全掌控LAMP组建的配置尤为重要,健全的监控机制也很重要,因为它们是你优化系统的唯一依据。

  一般而言,我们的服务器都是远程托管的,因此,服务器具备远程管理能力异常重要。现在一般是通过SSHD。在大多数的Linux操作系统中,都自带有一款open-ssh远程管理与控制的服务软件:SSHD,SSH是一个远程登陆工具。采用SSL协议加密,在安全性方面比传统的Telnet要高。同时SSHD带有SCP、SFTP功能,可以很方便地实现本地到远程管理控制、远程到远程的文件传输。 默认情况下,安装完CentOS以后,配置好网络后就可以通过SSHD远程连接主机了。进行远程管理的时候,借用类似于putty、SecureCRT等工具可以在windows平台下完成,十分方便。

  创建一个高性能的web站点,你需要遵守的众多基本原则之一是:使用标准的安装路径和配置。应用程序从开发到部署,原则上需要经过三种类型的服务器:开发服务器,测试服务器以及运营服务器。如果我们不使用标准的安装路径和配置,那么在这三种类型的服务器之间进行迁移的时候极有可能出现错误,需要各种费时费力的调整才可以运行,维护起来也比较麻烦。

  另一方面,遵守这一原则,会极大的方便你的权限分配,备份,监控等操作。从操作系统层面来说,CentOS在安装时候,要分配出var分区,用于存放web服务器的日志文件。如果你恰当的配置你的系统,那么var会分离成一个相对独立的文件系统,这样带来的好处之一就是:如果应用程序突然写入大量的日志并占用完你的磁盘空间,应用程序不至于崩溃。如果日志文件和主代码混在一起,则后果比较严重,应用程序就会崩溃。别忘了,日志的轮替机制有可能失效。这一点很重要。

  开始考虑LAMP架构的时候,谁都不会忽略安全方面的考虑。这里简单提一下SELinux。关于SELinux,经常会由于配置方面的原因给你带来不少麻烦,网上随便一搜,到处是如何关闭这一安全利器的文章,是有点遗憾。其实,只要你认真看完这里(点我),你就足以利用SELinux来保护你的webserver了,你要知道,关闭了SELinux,并不是一种优雅的解决问题的方法。

  如果需要足够的安全,专门的硬件防火墙必不可少,除此之外,你还应配置iptables。网上有说,最佳实践的iptables配置有五页左右,而我看看默认的CentOS配置说明仅有10行左右,明显不足。另外,请别使用root账户来运行Apache,虽然root用户安装软件包很方便,完全没有权限困扰,但是如果你的Apache是由root用户运行的,那就相当于别有用心的进入你的Apache就意味这他接管了你的系统。

  我对操作系统也就是LAMP中的L对整个LAMP架构的影响体会不是很深,希望各位看官莫笑,还请多多赐教。

通过文章我, 想必大家通过我的体会和指导,都了解了LAMP对LAMP架构很好用!

【编辑推荐】

  • LAMP攻略之PHP执行sql语句的写法
  • LAMP攻略之MySQL数据库结构和数据导出及导入
  • LAMP攻略之MySQL索引
  • LAMP快速构建apache web服务器
  • LAMP攻略之Apache与PHP的整合过程
  • LAMP环境下Apache + SSL Howto译文
  • LAMP下Apache-mysql-php安装

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...