如何做项目部署,让一个网站跑起来

qingchunwudi.jpeg

鉴于很多人问过我这个问题,为此特意写这篇文章。

通常,因为没有后台基础,往往项目部署对于很多前端工程师来讲既神秘,又难以捉摸。

本文以我的开源博客sinn为例,为你梳理一个web应用是如何跑起来的。

一,跑起一个web应用需要哪些准备

要跑起一个web应用,它通常需要以下几样东西:

  • 服务器
  • 编程语言环境
  • 应用程序
  • 应用依赖的工具

下面来说说它们各自的作用。

** 1,首先说说web服务器 **

任何应用程序都是基于操作系统运行起来的,web应用也不例外。

服务器通常包含了操作系统以及相关的服务,如网络服务,IP服务等等。对于web应用来说,web服务器的主要作用在于为web应用程序的运行提供操作系统环境以及服务。

目前服务器按操作系统可分为两大类,一类是window服务器,二是linux服务器。很显然,window服务器自带了window操作系统,linux服务器自带了linxu操作系统。

其中linux服务器应用最为广泛,而linux服务器的操作系统有好几种,主要有RHEL、CentOS、Debian、Ubuntu、Suse。其中用的最多的莫过于ubuntu和centos系统。
而window服务器则由于其糟糕的生态等原因而越来越不受欢迎。通常部署应用首推linux服务器。

因此,首先你需要一个linux服务器为应用程序提供操作系统运行环境和服务。

** 2,其次,编程语言环境 **

所谓编程语言环境,也就是nodejs, java, php等编程语言的运行环境。

应用程序是使用编程语言开发的,因此,应用程序的运行需要依赖于编程语言环境。

举个例子,要运行一个nodejs后台应用,就需要有nodejs运行环境。运行一个java后台应用,就需要有java运行环境。

有必须说明的是,一个网站的前台和后台的运行环境是不一样的。

前台的编程语言环境在客户端(浏览器),后台的编程语言环境在服务器端。

  • ** 前台 **
    前台主要是在客户端运行的,也就是在浏览器渲染的。前台的编程语言环境就是浏览器环境,这是因为前台的编程语言主要是html,css和js,而浏览器本身内置了对html,css和js的解析。也就是说,前台应用并不需要在服务器搭建编程语言环境。

  • ** 后台 **
    后台则不同,后台应用是在服务器端运行,但服务器通常不会集成编程语言环境,因此后台应用往往需要在服务器搭建自己的编程语言环境。如果是nodejs应用,就搭建nodejs运行环境,如果是php应用,就需要搭建php运行环境,等等。

因此,有了服务器之后,你就可以在服务器上搭建你的后台编程语言环境。

** 3,应用程序 **

有了服务器和编程语言环境后,就等于有了应用程序的运行基础。

这里所指的应用程序,是你基于某种编程语言开发出来的应用。比如一个基于nodejs开发的node后台应用。

** 4,依赖的工具 **

有了应用程序之后,还需要搭建一些这个应用程序所依赖的工具。

比如说,后台应用往往需要数据库来存储应用数据,比如mongodb,mysql等等。
而前台应用往往需要nginx来做静态资源服务,nginx也可用于做代理和接口转发。

这些都是应用程序运行所依赖的工具。

至此,服务器,编程语言环境,应用程序,依赖的工具都具备了,可以着手部署应用了。

二,前台部署与后台部署的不同

这里主要讲两点不同。

1,部署的方式不同。

** 前台 **

首先,前台所用的编程语言主要有html,css,js,前台代码主要生成一些静态资源文件,比如html文件,css文件,js文件等静态资源文件。

因此,前台应用的部署实际上就是静态资源的部署。

那么,如何在服务器上做静态资源部署呢?

首先,前台代码生成一些静态资源文件,比如html文件,css文件,js文件等静态资源文件。

然后把这些静态资源(前台代码)发布到服务器上的某个目录下,然后在服务器端用nginx,apache或tomcat等工具架起一层静态资源访问服务,指定当客户端(浏览器)根据域名访问时,访问这个静态资源目录下的入口文件,比如index.html。

入口文件往往加载了一些css文件,js文件,图片等静态资源文件,因此,当访问入口文件index.html时浏览器会根据入口文件里的引用去请求服务器静态资源目录下的css文件,js文件,图片等静态资源。

所以,当你打开一个网页的时候,通过控制台,你通常会看到下面这样的请求:

http://sinn.boyagirl.com/

如上图,当访问http://sinn.boyagirl.com的时候,实际上是浏览器请求了域名为sinn.boyagirl.com的服务器上某静态资源目录下的index.html文件并做渲染处理,在渲染时浏览器再根据index.html里面的引用去请求这个静态资源目录下的css,js,img等静态资源,并在浏览器渲染出来。

浏览器的请求分为两类,一类是静态资源请求,比如请求html,css,js,img等静态资源,其作用在于把应用前台UI渲染出来。另一类请求则是接口请求, 也就是请求后台接口,与后台应用进行数据交互,将请求的数据赋给UI。

以上就是前台部署和访问的全过程。

** 后台 **

后台应用是在服务器端运行的,因此首先需要在后端搭建该应用的编程语言环境。其次搭建该应用所依赖的工具,比如数据库,进程管理工具等等。

以sinn的后台sinn-server为例。这是一个基于nodejs开发后台应用,使用mongodb作为数据库。

因此,部署sinn-server,首先需要在服务器搭建nodejs运行环境。有了nodejs编程语言环境之后,还需要搭建mongodb数据库等依赖的工具。

2,部署工具不同

前台部署是静态资源部署,使用了nginx, apache,或者tomcat等工具。其中最常用的就是nginx。

后台部署需要搭建编程语言环境,如果是php,java等应用,通常也还需要使用apache/tomcat搭建相应的程序服务。除此之外,后台应用往往还依赖数据库,进程管理器等应用程序工具。

经过上面的分析之后呢,我们已经了解到了部署一个应用程序的过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,475评论 25 707
  • 2013-06-04 76 24472 医保 说到住院医保报销流程,大家一定要先了解自己是哪种医保。目前我国的医保...
    King_Arthur阅读 1,815评论 0 0
  • 在一个无比炎热无比炎热的下午,长相安全的展小花和妈妈来到一家看似平常的饭店里,点了一碗鸡蛋汤,一份鱼香肉丝,一份糖...
    三冉呀阅读 214评论 0 0
  • 两晋政权,承汉末三国乱世而立。汉代是我国历史上少有的盛世,但晋朝就不一样了,它很羸弱。当时在汉民族的周边,还居住着...
    更向远行阅读 194评论 0 1