如何为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 ...
随机推荐
- Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)
有了子弹,总得有敌人来打吧,不然游戏有啥意思呢?今天我们来实现敌机从屏幕上边往下飞 参考微信打飞机游戏里面,敌机分为3种 1是特小飞机,2是小飞机,还有一种就是大飞机 面向对象编程提倡抽象,实现代码复 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记14
day14课程内容: 深浅拷贝 #浅拷贝只能拷贝一层s=[1,'a','b']s1=s.copy()#浅拷贝print(s1)#[1, 'a', 'b']s[0]=2print(s1,s)#[1, ' ...
- 百度前端技术学院js任务三
任务地址:http://ife.baidu.com/course/detail/id/98 代码: <!DOCTYPE> <html> <head> <met ...
- Centos7下,简单DOCKER 使用.映射SSH端口到宿主主机.
其实使用docker完全没有必要ssh,初学的时候,可以这样熟悉以下操作. 参考这哥们的文章:http://www.jianshu.com/p/d2dd936863ec 获取镜像 docker pul ...
- Spring 代理对象,cglib,jdk的问题思考,AOP 配置注解拦截 的一些问题.为什么不要注解在接口,以及抽象方法.
可以被继承 首先注解在类上是可以被继承的 在注解上用@Inherited /** * Created by laizhenwei on 17:49 2017-10-14 */ @Target({Ele ...
- java遍历的优化
说明:这是在面试中面试官出的题.虽然是常见的优化问题,但这种经验的确很有用.感慨之余,分享出来,以此共勉. 场景:现有List<PersonA>,List<PersonB>,P ...
- python导入模块
1.模块的定义: 模块定义:用来逻辑上组织python代码(变量.函数.类.逻辑:目的是:实现一个功能),本质就是.py结尾的python文件. 补充: 包的定义:用来从逻辑组织模块的,本质就是一个目 ...
- php 变量原理讲解
php 变量原理讲解 一.变量概念 所谓变量,是指在程序中其值可以变化的量. 程序是管理和处理数据的.在程序运行过程中,我们需要存贮这些数据,变量和常量就是用于保存程序运行时的数据的. 变量通常由 ...
- WebService之CXF注解之五(配置文件)
1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...
- hihocoder Challenge 29 D. 不上升序列
这场爆零比赛题目还是要补的 这道题据说是出烂掉的原题,我找了下 CF13.C/ CF371 div1 C,一模一样 我服这群原题大佬 为 当时,使 不严格递增的最小步数,那么 Otherwise 显然 ...