如何为Web应用选择托管主机
PHP应用开发好了?恭喜你!不过,现在还没什么用,因为用户无法使用。你要把应用存储到服务器中,让预期受众能访问。
一般来说,存储PHP应用有四种方式:共享服务器、虚拟私有服务器、专用服务器和平台即服务。每种方式都有自己的优
点,都有适用的应用类型和一定的预算。
而且主机商也有很多, 如果你刚接触Web主机领域, 要考虑的事情有很多 。 有些主机商只提供共享服务器, 有些主机
商除此之外还提供虚拟私有服务器和专用服务器 。 本章不会过多讨论主机商, 我们要重点讨论的是主机方案。
共享服务器
共享服务器是最便宜的主机方案,每月1 - 10美元。我们不应该选择共享主机方案。我这么说不是因为我对共享主机提
供商的服务质量或客户支持有意见, 好的共享主机提供商有很多。 我这么说只是因为共享主机方案对开发者不友好。
如其名所示, 共享服务器意味着要和其他人共事服务器资源 。 如果选择购买共享主机, 你的主机账户会与很多其他顾
客的照 户在同一-个物理设备中 。 假如你使用的设备有2G B 内存, 那么你的PHP应用或许只能使用全部内存的一小部
分, 具体是多少取决子这台设备中有多少账户。 如果同一台设备中的其他照户运行一个编写拙劣的脚本, 会对你的应用
产生负面影响 。 有些共享主机提供商会超卖共享服务器, 导致你的PHP应用始终要在拥挤的设备中争夺系统资源。
而且,共享主机还很难定制。例如,你的应用可能需要使用Memcached或Redis在内存中缓存;可能想安装Elasticsearch,
为应用添加搜索功能。可是,共享服务器使用的软件难以定制(可能根本无法定制) ,最终受影响的是你的应用。
共享服务器很少提供远程SHH访问功能, 通常只能使用FTP访问 。 这个缺陷有严重的限制, 妨碍了我们自动部署PHP应用。
如果预算非常少,或者需求很简单,共享服务器也许够用了。然而,如果你开发的是商业网站或较受欢迎的PHP应用,最好使
用虚拟私有服务器、专用服务器或PaaS。
虚拟私有服务器
虚拟私有服务器(virtual Private Server, VPS)看起来、感觉起来以及表现都像是裸机服务器, 但其实不是裸机服务器。
vPs由一系列系统资源组成, 分布在一台或多台物理设备中,不过仍有自己的文件系统、根用户、系统进程和IP地址。 VPS
的内存、 CPU和帯宽是固定的, 而且都只属于你一个人 。vPs的系统资源比共享服务器多, 会提供根SSH访问功能, 而且
不限制能安装什么软件。不过,功能强意味着责任大。 VPS会提供根权限,让你访问底层操作系统。我们要根据PHP应用的需
求, 自己动手配置和保护操作系统。 对大多数PHP应用来说, VPS是最好的选择。 vPs提供了足够的系统资源(例如, CPU、
内存和硬盘空间) ,而且能按需增减。 VPS每月需要10- 100美元,具体多少取决于PHP应用所需的系统资源量。如果你的PHP
应用特别受欢迎(每月有几十万访同量) ,觉得VPS太贵,或许应该考虑升级, 使用专用服务器。
专用服务器
专用服务器是机架式设备, 由主机商代你安装、 运行和维护。 我们可以根据自己制定的规格配置专用服务器。 专用服务器
是真实的设备, 必须搬运、 安装和监控, 设置和配置的速度没有vPs快 。 话虽如此, 但是专用服务器能为要求高的PHP应用
提供最好的性能。
专用服务器和VPS非常类似,有根权限,能通过ssH访问底层操作系统,而且必须根据PHP应用的需求保护和配置操作系统。 专用
服务器的优点是成本效益高。 随着所需的系统资源越来越多,最终你会觉得vPs太贵,而自己投资基础设施能省钱。
专用服务器每月要花几百美元, 具体多少取决于服务器的规格 。 我们可以托管专用服务器(额外付钱给主机商,让它们管理服
务器) ,也可以不托管(自己管理服务器) 。
PaSS
使用平台即服务(Platforms as aService, PaaS)能快速发布PHP应用。与虚拟私有服务器和专用服务器不同, 我们无需管理PaaS。
我们要做的只是登录PaaS提供商的控制面板, 单击几个按钮。 有些Paas提供商会提供命令行工具或HTTP API, 让我们部署和管理存
储的PHP应用。 流行的PHP PaaS提供商有:
- AppFog
- AWS Elastic Beanstalk
- Engine Yard
- Fortrabbit
- Google App Engine
- Heroku
- Microsoft Azure
- Pagoda Box
- Red Hat OpenShift
- Zend Developer Cloud
各个PaaS提供商的价格有所不同,不过与虚拟私有服务器差不多:美元10~ l00美元。我们要为P H P应用使用的系统资源买单 。 系统
资源可以接需增减 。 我推荐不想自己管理服务器的开发者使用PaaS主机方案。
选择主机方案
我们要根据自己的需求选择合适的主机方案。 任何时候, 只要需要都可以升级或降级主机基础设施。对小型的PHP应用或原型来说,
PaaS提供商(例如Engine Yard或Heroku) 或许是最好最省事的方案。 如果想更多地控制服务器的配置, 那就使用VPS。 如果应用
特別受欢迎, VPS被几百万的访问量击夸了(顺便恭喜你) ,那就换用专用服务器。不管选择哪种主机方案,都要保证主机中有最新稳定
版PHP,以及PHP应用所需的扩展。
摘自:Modern PHP 中文版
如何为Web应用选择托管主机的更多相关文章
- 第四章SignalR自托管主机
第四章SignalR自托管主机 SignalR服务器通常在IIS的Asp.Net应用程序上承载,但它也可以使用自托管库来作为自托管的主机来运行(就像控制台应用程序或Windows服务那样)与Signa ...
- [渣译文] SignalR 2.0 系列: SignalR 自托管主机
原文:[渣译文] SignalR 2.0 系列: SignalR 自托管主机 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...
- 最新选择Godaddy主机方案美国数据中心教程指导
随着Godaddy官方管理层的变动之后,主营重心已经从当初的域名开始转向到域名和主机产品上.这点我们从其发布域名优惠信息的频率也可以看到,而且我们可以看到常年的主机半价优惠,以及针对主机销售年付方案赠 ...
- 关于个人网站选择虚拟主机还是VPS服务器的讨论
还记得当初才开始学习建站的时候,选择的第一款虚拟主机是全HTML的主机,那时候的虚拟主机还分为HTML或者是ASP,PHP的都很少,在国内接触的学习较多还是以ASP为主,PHP是最近几年才开始流行.如 ...
- IIS web搭建之虚拟主机
IIS web搭建之虚拟主机 虚拟目录:能将一个网站的文件分散存储在同一个计算机的不同目录和其他计算机. 使用虚拟目录的好处: 1.将数据分散保存到不同的磁盘或者计算机上,便于分别开发和维护. 2.当 ...
- 【上载虚拟机】XX是一个Workstations 12.X虚拟机,不受XX支持。请选择其他主机或将虚拟机的硬件版本更改为以下选项之一。
背景 由于搭建集群时,要使用Ubuntu系统,还有一点就是咱们使用的Ubuntu系统是定制的,但是它是一个虚拟机,需要通过VMware Workstations这款软件,把咱们定制好的Ubuntu系统 ...
- zabbix监控托管主机遇到问题
昨天监控公司的托管主机时发现监控不上,回想起来其实就是个小问题,分分钟能解决的事,排错的过程才是真正耗心费神的. 监控环境: A zabbix server: 192.168.17.110 serve ...
- go语言,golang学习笔记2 web框架选择
go语言,golang学习笔记2 web框架选择 用什么go web框架比较好呢?能不能推荐个中文资料多的web框架呢? beego框架用的人最多,中文资料最多 首页 - beego: 简约 & ...
- Web自动化 - 选择操作元素 2
文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...
随机推荐
- 基于MATLAB2016b图形化设计自动生成Verilog语言的积分模块及其应用
在电力电子变流器设备中,常常需要计算发电量,由于电力电子变流器设备一般是高频变流设备,所以发电量的计算几乎时实时功率的积分,此时就会用到一个积分模块.发电量计算的公式如下:Q=∫P. FPGA由于其并 ...
- 插入排序实现&&选择排序实现
萌新刚刚开始学习算法,第一步是学习排序,毕竟算法的四大块"排序,查找,图,字符串"里面,排序是第一位的(PS:今天才知道算法提供的只是一个程序编写思路,一直以为是一个函数,难怪传入 ...
- Js常用的函数
1.用于对正则表达式的函数: var pattern=/\d{3}-\d{2}-\d{4}/;//这里产生的是一个object类型 alert(pattern.test("cscscscs& ...
- puppeteer,新款headless chrome!
puppeteer puppeteer是一种谷歌开发的Headless Chrome,因为puppeteer的出现,业内许多自动化测试库停止维护,比如PhantomJS,Selenium IDE fo ...
- CentOs下Mongodb的下载与安装
1.下载MongoDB(64位) http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz tar zxvf mongodb-lin ...
- NumPy学习_00 ndarray的创建
1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...
- 如何通过SpringBoot官方手册集成RabbitMQ
众所周知,SpringBoot是对Spring的一层封装,用来简化操作. 随着SpringBoot的越发成熟,很多的流行技术都提供了SpringBoot的版本. 可以点击下方的连接查看spring-b ...
- 1.9 list 列表
列表是什么? list是Python中的基本数据结构之一,属于可变序列,所以前文中讲的可变序列的通用操作都适用于list. 这一节讲列表的特性吧. 特性一: 列表是包含任意对象的有序集合,同一个列表中 ...
- MyCat 枚举分片设计思考,查询命中条件
Mycat多租户实现的两种方式 MyCat,各种分片规则,仅保证插入的时候分片.表关联,join,查询怎么命中分片条件,还是需要设计. 今天稍微测了一下. ER 分片,此方式,插入的时候能分片,但是查 ...
- java socket 模拟im 即时通讯
自己想了一下怎么实现,就写了,没有深究是否合理.更多处理没有写下去,例如收件人不在线,应该保存在数据库,等下一次连接的时候刷新map,再把数据发送过去,图片发送也没有做,也没有用json格式 sock ...