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

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搭建相应的程序服务。除此之外,后台应用往往还依赖数据库,进程管理器等应用程序工具。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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