文章简述

5月13号的时候,上线了自己的个人博客网站:http://blog.hanshuai.xin,随后在平台上发布了一篇关于My-Blog的介绍博客《Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦》,有几位朋友在浏览网站之后也有私信问过我,个人网站该怎么搭建和上线,当时就有想过会写一篇文章来介绍自己的网站是如何上线的,解答一下几位朋友的疑惑。

但是由于操作过程中可能选择的平台或者方案的差异不可能符合每个人的要求,这个问题就看每个人的个人选择了,我就不在文章中啰嗦了,文章中只是我选择的方案,如果对你有帮助的话那是最好不过了,如果和你所设想的有差异的话,你就再看看其他的教程吧,本文完全是根据My-Blog上线过程来写的。

上线步骤

My-Blog的开发过程就不算在内了,关于上线主要有以下几个步骤:

  • 购买云服务器主机
  • 购买域名
  • ICP备案
  • 系统安装及环境配置
  • My-Blog安装
  • 域名解析及端口映射

购买云服务器主机

目前,云计算近年以每年32%的增长率飞速发展,市场上也是百家争鸣(其实还是那几个大佬),阿里云、腾讯云、网易云....基本都可以提供一整套完善的解决方案,网易进入云计算市场的时间很晚,用户量及规模也远不如阿里云和腾讯云,针对熟悉度而言,本人所接触到的云产品都是阿里云的,因此这次的服务器主机选择的也是阿里云的ECS。
在阿里云购买其云产品之前,首先你要有一个阿里云的账号,阿里云官方网站:https://www.aliyun.com/
,可以到这里先注册一个账号,然后进入管理控制台,大致是这么一个样子:


左边的导航栏中有云服务器ECS选项,进入这个界面:

这里就是ECS的管理界面,如果还没有购买的话,点击页面中的购物车图案即可进入ECS的购买页面:


只截了部分页面,在此购买界面,可以选择服务器的区域、CPU、带宽等配置,根据个人需求进行选择即可,感觉这种个人网站访问量应该也不会很大,因此我是选择购买了一个较低配置的云服务器,确认好配置、设置完服务器的登陆密码之后,点击右下方的立即购买按钮付款就行了,付款完成后就可以在你的ECS控制台看到你的服务器了。

购买域名

如果你没有自己的域名的话,也可以通过阿里云来购买,同样是在控制台的左侧导航栏中:

点击进入域名管理界面:

点击域名注册,进入域名的查询和购买界面:


确认好你想用的域名没有被注册之后,点击进入购买页面付款即可,有些域名其实还是很便宜的,一顿饭钱不到的样子,购买完域名之后建议去实名认证

ICP备案

需要提醒大家的是,如果你买了阿里云的服务器,并且想要通过域名访问,那域名是必须要备案的,总结一句:必须先将域名备案,才能通过域名访问阿里云的服务器。

一提到备案,可能你会觉得备案这个事情很麻烦,各种流程啊,手续啊。其实没这么麻烦,步骤其实并不多,只是做一下实名认证以及一些资料的填写,还有一个事情就是办理拍照,阿里云也会免费给你邮寄一块背景幕布,你只需要在家以那块幕布为背景拍一张半身照上传就好,所以不管是个人网站的备案,还是企业网站的备案,都只是时间上的问题,一般备案审核需要二十天左右,我记得当时我在做ICP备案的时候,阿里云那边的客服是一直跟着进度的,有问题也会及时打电话过来确认,所以过程中并没有碰到特别大的阻力,等待一段时间后很顺利的通过了。

在右上方有一个备案栏:

点击即可进入阿里云的备案管理界面:

步骤在图里也做了标注,通过阿里云进行备案的话,先申请一个阿里云的备案服务号,通过后进入备案专区:

先看一下备案详细流程:https://help.aliyun.com/knowledge_detail/36895.html

然后是本页面下方的注意事项:

大致了解了流程后点击开始备案即可,接着就是按照要求填写资料然后耐心等待。

下面是备案完成后的页面,当时备案的时候没有截图,备案过程的图片就没了,可参考阿里云的教程。

系统安装及环境配置

ECS中安装的是centos系统,当然也有其他服务器操作系统,完全按照个人习惯去选择就好了。

接着是一些常用的工具需要安装:

  • JRE(1.8)/JDK(1.8)
  • MySql
  • Nginx
  • Maven
  • git
  • Docker
  • docker-compose
  • ftp服务

对于以上安装软件,并不是每个都必须要装,我是使用docker-compose启动My-Blog,因此只安装了jre、docker、docker-compose,但是如果是使用非docker方式启动的话,则需要安装MySQL Server;如果你还想要在服务器更新代码并且打包的话,git和maven两个软件也是必须要装的了;如果你想从本地打包并且将jar包或其他文件传到服务器上,那么ftp服务是一定要打开的。上面这些工具是针对My-Blog的,如果是其他web项目的话,可能tomcat或者jetty也是需要安装的。

**各个工具的安装教程我就不写了O(∩_∩)O。**

My-Blog安装

查看My-Blog的wiki文档,里面详细介绍了安装过程,地址:https://github.com/ZHENFENG13/My-Blog/wiki

域名解析及端口映射

域名解析

还是进入域名管理界面:

在你想要解析的域名那栏点击解析,然后进入域名解析界面:

点击添加解析 ,然后添加一条A类型的配置即可,比如My-Blog的网站地址是blog.hanshuai.xin,主机记录填写blog即可,然后是记录值,填写你服务器的IP地址。

端口映射

想要访问到你部署的web资源,还需要做一步操作,比如My-Blog暴露的端口是28080,那么你访问http://blog.hanshuai.xin是访问不到的,因为http服务的端口是80,所以,要么你把暴露的端口改为80,但是这种改法不灵活,如果你要部署多个网站就完蛋啦,因此最好是安装一个反向代理软件监听80端口,再将请求转发到28080端口,如nginx,或者haproxy。

总结

以上步骤做完之后就完成了网站搭建及上线流程,可以在公网上访问网站了,其实最主要的还是前三步: 购买云服务器主机、购买域名、ICP备案,这三个步骤做完之后,你的网站就有了“合法身份”,后面的部署工作即使在日常开发中也是经常做的事情,因此也没有花太大篇幅去讲,如果文中有错误请提出,我会尽快纠正。

本文是根据自己的个人网站My-Blog来写的,文中所提到的也都是一个月以来的My-Blog上线经历,做一个简单的记录,同时也为了解答当时私信我的几位朋友的问题,希望你们看完之后能有一个简单的答案了。

My-Blog搭建过程:如何让一个网站从零到可以上线访问的更多相关文章

  1. SSM整合搭建过程中的一个怪异问题

    好久没有搭建框架了,昨天开始试图搭建一个SSM框架,各种配置文件搭建成功,服务器也启动正确,但是在运行过程中,发现总是不能获取JDBC,不能够创建连接池工厂,报错如下:网页报500错误码 SEVERE ...

  2. 从零开始用 Flask 搭建一个网站(二)

    从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...

  3. 输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)

    以前只知道输入一个网站,然后看着返回琳琅满目的内容,其实中间经历的过程和步骤太多了.为了满足好奇心以及学习需要,特查阅了资料将其记录下来以备后续自己复习. 从我在地址栏输入www.zhihu.com ...

  4. 3分钟搭建一个网站?腾讯云Serverless开发体验

    作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤. 编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间. 作为一个不精通代码的业务玩家, ...

  5. Access应用笔记<四>-一个完整的自动化报表搭建过程

    距离之前的三篇日志已经很久啦,今天终于完成了一个比较完整的自动化报表搭建过程 基于公司数据保密原则,样板就不放到网上来了,简单说一下背景: 这次access实现的功能包括: 1)为部门整体搭建了一个员 ...

  6. [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站

    原文: http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 原文的源代码在此 太多的教程教你些一个Hello, World!了, ...

  7. 从零开始用 Flask 搭建一个网站(一)

    前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...

  8. 从零开始用 Flask 搭建一个网站(三)

    从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...

  9. 从零开始用 Flask 搭建一个网站(四)

    前言 从零开始用 Flask 搭建一个网站(三) 介绍了网页前端与后端.前端与前端之间数据的交流.本节主要介绍一下如何应用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以轻 ...

随机推荐

  1. Python之路-Linux命令基础(4)

    作业一: 1)开启Linux系统前添加一块大小为15G的SCSI硬盘 2)开启系统,右击桌面,打开终端 3)为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大 ...

  2. WCF和ASP.NET Web API在应用上的选择

    小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...

  3. 轻量级操作系统FreeRTOS的内存管理机制(一)

    本文由嵌入式企鹅圈原创团队成员朱衡德(Hunter_Zhu)供稿. 近几年来,FreeRTOS在嵌入式操作系统排行榜中一直位居前列,作为开源的嵌入式操作系统之一,它支持许多不同架构的处理器以及多种编译 ...

  4. Sql server DATEADD日期函数的使用

    DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔. 日:在当前日期上加两天 , ,'2014-12-30') 月:在当前日期上加两个月 , , 年:在当前日期上加两年 ...

  5. 卷积神经网络CNN与深度学习常用框架的介绍与使用

    一.神经网络为什么比传统的分类器好 1.传统的分类器有 LR(逻辑斯特回归) 或者 linear SVM ,多用来做线性分割,假如所有的样本可以看做一个个点,如下图,有蓝色的点和绿色的点,传统的分类器 ...

  6. C++学习笔记1(标准的输入输出)

    前言: 个人一直以来比较懒,最近才准备记录一下自己学习C++的学习过程,希望自己能在写博客的时候能够坚持下去,欢迎大家在博客中支出存在的问题,好了不多说了,自己能坚持下去.我准备在我的博客中通过与C语 ...

  7. Java设计模式之(建造者模式)

    建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 建造者模式通常包括下面几个角色: 1. builder:抽象建造者,给出一个抽象接口,以规范产品对象的各个组 ...

  8. LeetCode 207. Course Schedule(拓扑排序)

    题目 There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have p ...

  9. [ext4]04 磁盘布局 - Meta Block Groups

    Meta Block Groups,可以翻译为元块组集. 如果不采用Meta Block Groups特性,在每个冗余备份的超级块的后面是一个完整的(包含所有块组描述符的)块组描述符表的备份.如前所述 ...

  10. 深入浅出Node.js(一):什么是Node.js(转贴)

    以下内容转自:http://www.infoq.com/cn/articles/what-is-nodejs/ 作者:崔康 [编者按]:Node.js从2009年诞生至今,已经发展了两年有余,其成长的 ...