如何为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 ...
随机推荐
- hibernate之实体@onetomany和@manytoone双向注解(转)
下面是User类: @onetomany @Entity @Table(name="user") public class User implements Serializable ...
- shiro笔记-AuthenticatingRealm和AuthorizingRealm关系
AuthenticatingRealm-------->用于认证方法的Realm AuthorizingRealm--------->用于授权和认证的realm一般使用这个 Authori ...
- 使用canvas编写时间轴插件
使用canvas编写时间轴插件 背景 项目中有一个视频广场的功能,需要一个时间轴类似视频播放中进度条功能一样显示录像情况,并且可以点击.拖动.放大缩小展示时间轴,获取到时间轴的某个时间.原来的时间轴是 ...
- Gitlab_服务器安装配置
1:开放防火墙端口 1. sudo yum install curl openssh-server openssh-clients postfix cronie -y sudo service p ...
- Java三大特性(封装,继承,多态)
Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...
- Fantasia (Tarjan+树形DP)
Time Limit: 1000 ms Memory Limit: 256 MB Description 给定一张N个点.M条边的无向图 $G$ .每个点有个权值Wi. 我们定义 $G_i$ 为图 ...
- SecureCRT + Tmux 分屏 高效开发
最近发现了SecureCRT的一些好玩的功能, 具体如下: 1. 发送消息到所有的终端 首先选中查看-->交互窗口 此时会看到下面出现一个输入窗口 然后, 右击选择"发送交互到所有标签 ...
- LinkedHashMap概述
1. LinkedHashMap概述: LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap. LinkedH ...
- 命令行下编译Wordcount
1. 编辑WordCount.java文件,在下载的hadoop安装包里有WordCount的例子 http://mirrors.hust.edu.cn/apache/hadoop/common/ha ...
- 分布式mysql中间件(mycat)
1. MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中 ...