`
soboer
  • 浏览: 1310453 次
文章分类
社区版块
存档分类
最新评论

LAMP系列文章之:泛泛而谈LAMP(一)

 
阅读更多

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


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

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

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

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

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

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

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

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

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


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

分享到:
评论

相关推荐

    公务员面试技巧:人际关系题泛泛而谈怎么办.docx

    公务员面试技巧:人际关系题泛泛而谈怎么办.docx

    泛泛而谈:白话分布式一致性与共识算法

    说的简单明了他们说你是泛泛而谈,算法这东西是讲明白的吗?自己不动手光想听别人讲就能明白,还想深刻明白,天下哪有这种便宜事!好吧,我就泛泛而谈吧。 1. 分布式系统问题 多节点,提高了系统整体的负载能力;...

    KTDEVBox一号机组.zip

    文档等介绍略少KtDevBox 当然也存在的一些不足,但该项目的初衷,也仅做学习交流之用,以期对该方面技术的发展,起到一点点帮助。app 涉及主要功能点用户注册、登录以及资料管理功能;博客创建、更新、删除和查看等...

    linux 服务器 ubuntu

    对于每一种应用,作者都不是泛泛而谈,而是推荐一个“最佳方案”——从硬件服务器的选型到Linux入门,从LAMP到Tomcat,从代理服务器到邮件服务器,从DHCP到DNS,从Samba到虚拟化,从负载均衡到远程控制,从RAID到LVM...

    泛泛而谈界面中的斑马纹设计

    我肯定承认这是一本神作,不过看了当下很多界面以及自身平时的设计之后,发现实际情况中使用的斑马纹在原来基础上通过视觉的处理有了扩展,不仅仅是一深一浅单纯颜色的配合使用。图一:最正宗的斑马纹应用图二:斑马...

    java多线程编程大总结

    在Java5 以后,Java 对多线程做了很多扩展,扩展部分称之为并发包。这部分内容大大增强 了Java 多线程编程的能力,通过使用 Java5 线程新特征的 API ,可以很容易的做出复杂的多 线程程序。与其他语言相比,已经是...

    大数据时代:大数据的价值.docx

    上一篇文章中也提到"大数据的资源太丰富,如果你没有明确的目标,你就算没有走入迷途至少会觉得非常迷茫",确实,对于企业而言大数据很必要,其可以实现的东西也很多,稍微梳理一下,大概包括: 如支撑业务战略决策...

    线性系统综述, 自动控制系统进阶

    综述了线性系统理论的发展与变迁以及跃进 综述类的文章不总是泛泛而谈,部分内容值得参照

    ASP.NET 揭秘第二版

    每一章也都不是泛泛而谈理论,而是围绕实际样例代码来组织,让读者马上可以上手,并且加深理解。书中还包含了两个完整的、立即就可以用得上的ASP.NET应用程序,一个就业站点和一个网上商店,用于演示实际应用中ASP...

    J2SE5.0专题之语言特性

     由于Java社群等待这一从1.4向5.0版本升级已经有相当长的一段时间,大家都很关心5.0中有哪些值得关注的变化,于是blog的相关信息满天飞,我也兴冲冲地在自己的blog中添上了一系列的文章。无奈这些blog文章,包括我...

    通讯词典-pdf

    “中国电子技术信息网” (简称“中国电子网”)是一个专业的电子技术网站,是一个提供全面电子信息的平台。我们以电子技术为核心,面向工程师的需求选取了大量技术文章与资料;同时我们以信息服务为目标,为业界...

    ChatGPT会不会取代管理咨询行业呢?

    薪酬激励是人力资源管理中的核心模块之一,我们就此项问题对ChatGPT进行了提问——“应该如何调整薪酬结构以促进员工积极性?”它是这样回答的: 图1:ChatGPT对话界面图 不知道屏幕前的各位看完是什么感受,反正小...

    ASP.NET揭秘 光盘

    每一章也都不是泛泛而谈理论,而是围绕实际样例代码来组织,让读者马上可以上手,并且加深理解。书中还包含了两个完整的、立即就可以用得上的ASP.NET应用程序,一个就业站点和一个网上商店,用于演示实际应用中ASP...

    单层感知器神经网络matlab代码-python01:本文是Python通用编程系列教程,已全部更新完成,实现的目标是从零基础开始到精通Pyt

    本文是Python通用编程系列教程,已全部更新完成,实现的目标是从零基础开始到精通Python编程语言。本教程不是对Python的内容进行泛泛而谈,而是精细化,深入化的讲解,共5个阶段,25章内容。所以,需要有耐心的学习...

    Illustrated C# 2008 (with Source Code)

    这本书的书名看起来好像一本泛泛而谈的傻瓜书,其实并非如此! 1:这本书最大好处,就是它是一本真正讲道理的书。这一点很难得,因为大多数类似的书都是“how-to”书,告诉你怎么操作,而对“为什么要这么做”很少...

    C程序设计语言

    如果你是一个完完全全的编程新手,本书不适合于你---- 你应该先看一本国内的C语言教材,他们虽然泛泛而谈,但至少可以让你了解具备一点最基本的C语言知识,而且不会让你感到太困难---比如潭老师的书(虽然被很多人...

    数据库设计参考规范.doc

    二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列 在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,建议另外建立一张 副表,以保存这些列。然后通过关键字把主表跟这张...

    数据库设计规范化的五个要求.doc

    二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些 列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建 立一张副表,以保存这些列。然后通过关键字把主表跟...

Global site tag (gtag.js) - Google Analytics