- A+
什么是一键安装包
一键安装包有lamp、lnmp、和lnamp三种,到底该选用哪个呢?这个是分情况的,先看下三者的区别在哪里:
lamp 的全称是linux + apache + mysql +php
lnmp 的全称是linux + nginx + mysql + php
lnamp的全称是linux + nginx + apache + mysql + php
从全称中可以发现,其实这三个一键安装包主要区别就是用apache还是nginx,或者是要两者都用。
一键安装包如何选择呢?
通常情况下如果服务器或VPS的内存不多,lnmp是最好的选择,因为nginx相对apache更节约内存,但似乎有时不太稳定,会比较常出现502错误(指错误网关,无效网关);静态网站的话,用lnmp还是不错的;如果网站动态内容多的话,lamp还是最稳定的,lnamp是现在比较流行的一个组合,也就是nginx做前端处理静态,apache做后台处理动态,这样比起lnmp的php-cgi相对是较稳定的,大家可以根据上面的分析结合自己情况选择一个。
什么是静态,动态?
这里的静态是指静态页面,如html,jpg,gif,css等。
动态是指php的页面或内容。
Nginx 特性
Nginx是一款轻量级的web服务器/反向代理服务器/电子邮件代理服务器,安装非常简单,配置文件也很简洁(还支持 perl 语法),Nginx 支持平滑加载新配置,还能够在不间断服务的情况下进行软件版本升级。Nginx 性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
- 相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。一台nginx最高支持50000并发链接,nginx 处理请求是异步非阻塞的,而apache 处理请求是阻塞型的。
- 作为负载均衡服务器:Nginx 既可在内部直接支持 Rails 和 PHP,也可支持作为 HTTP 代理服务器对外进行服务。Nginx 用 C 编写而成, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
- 作为邮件代理服务器:Nginx 同时也是一款非常优秀的邮件代理服务器(最早开发这个产品的目的之一,是作为邮件代理服务器)。
- 反向代理可以根据url将请求转向于不同用途的集群,比如图片请求,转向图片服务器集群;视频请求,转身视频服务器集群。
Apache 特性
Apache 是 LAMP 架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。但 Apache 的缺点是有些臃肿,内存和 CPU 开销大,性能上有损耗,不如一些轻量级的 Web 服务器(譬如:Nginx、Tengine等)高效,轻量级的 Web 服务器对于静态文件的响应能力来说远高于 Apache 服务器。
- Apache 做为 Web Server 是负载 PHP 的最佳选择,rewrite 比nginx 的rewrite 强大,模块超多基本想到的都可以找到,少bug超稳定,nginx 的bug相对较多,Apache在处理动态页面上优于nginx。
- 如果流量很大的话,可以采用 Nginx 来负载非 PHP 的 Web 请求。
- Web 服务器缓存也有多种方案,Apache 提供了自己的缓存模块,也可以使用外加的 Squid 模块进行缓存,这两种方式均可有效提高 Apache 的访问响应能力。Squid Cache 是一个 Web 缓存服务器,支持高效缓存,可作为网页服务器的前置 cache 服务器缓存相关请求以提高 Web 服务器速度。把 Squid 放在 Apache 的前端来缓存 Web 服务器生成动态内容,而 Web 应用程序只需要适当地设置页面实效时间即可。如访问量巨大,则可考虑使用 memcache 作为分布式缓存。
- PHP 的加速可使用 eAccelerator 加速器,eAccelerator 是一个自由开放源码的 PHP 加速器。它会优化动态内容缓存,提高 PHP 脚本缓存性能,使 PHP 脚本在编译状态下,对服务器的开销几乎完全消除。它还可对脚本起优化作用,以加快其执行效率。 使 PHP 程序代码执效率可提高 1-10 倍。
动态网站服务器架构解决方案
这里3z学堂给大家提供了三种常见的动态网站服务器架构解决方案
1、 squid + Apache + PHP + eAccelerator
使用 Apache 负载 PHP,squid 缓存,HTML 或图片请求可直接由 squid 返回给用户。很多大型网站都采用这种架构。
2、 Nginx/Apache + PHP(FastCGI) + eAccelerator
使用 Nginx 或 Apache 负载 PHP,PHP 使用 FastCGI 方式运行,效率较高。
3、 Nginx + Apache + PHP + eAccelerator
此方案综合了 Nginx 和 Apache 的优点,使用 Apache 负载 PHP,nginx 负责解析其它 Web 请求,使用 Nginx 的 rewrite 模块,Apache 端口不对外开放。
数据库部署
开源数据库中,MySQL 在性能、稳定性及功能上是首选,可以达到百万级别的数据存储。网站初期可将 MySQL 和 Web 服务器放在一起,但是当访问量达到一定规模后,应该将 MySQL 数据库从 Web Server 上独立出来,在单独的服务器上运行,同时保持 Web Server 和 MySQL 服务器的稳定连接。
当数据库访问量达到更大级别时,可考虑使用 MySQL Cluster 等数据库集群或者库表散列等解决方案。
总的来说,LAMP 架构的网站性能会远远优于 Windows IIS + ASP + Access这样的网站。可以负载访问量也非常大,国内大量个人网站若想支撑大访问量,采用 LAMP 架构是一个不错的方案。当然,首推 LNMP 架构。
LNAMP
最后单独说一下LNAMP,一般如果是企业级应用的话,一般服务器配置较高,不存在内存不足的情况,对稳定性要求比较高,所以LNAMP的开发模式才是首选,因为目前大多的开发模式都是前后端分离,由前端页面调用后端API接口,所以用nginx处理静态页面,还有一个好处就是还可以用nginx做映射。那为什么还要用apache呢,这就要说到SEO优化上了,完全的前后端分离页面不利于SEO优化,所以部分的页面是需要写成伪静态页面,这也是处理SEO优化的一种策略,所以就需要用到Apache来处理这些页面。
读到这里,相信通过3z学堂的分享,大家已经对LAMP、LNMP、LNAMP这三个一键包有了更多了解了。简单地说基于 LAMP 架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是 Web 网络应用和环境的优秀组合。若是服务器配置比较低的个人网站,当然首选 LNMP 架构,企业级应用推荐LNAMP。其实这三个一键包选择关键还得看实际生产环境应用及用的人,希望今天的分享能帮助到一些朋友,也欢迎大家留言进行交流。
2018年11月21日 下午11:53 沙发
文章不错非常喜欢
2018年11月22日 上午10:09 1层
@新闻 感谢支持!欢迎常来指导~
2018年11月22日 上午9:13 板凳
向全栈优秀开发者致敬
2018年11月22日 下午5:13 地板
不错,收藏学习一下
2019年6月25日 上午12:33 4楼
文章不错支持一下,非常喜欢
2019年6月25日 下午11:14 1层
@今日新鲜事 希望有帮助到你