My-Blog搭建过程:如何让一个网站从零到可以上线访问
文章简述
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搭建过程:如何让一个网站从零到可以上线访问的更多相关文章
- SSM整合搭建过程中的一个怪异问题
好久没有搭建框架了,昨天开始试图搭建一个SSM框架,各种配置文件搭建成功,服务器也启动正确,但是在运行过程中,发现总是不能获取JDBC,不能够创建连接池工厂,报错如下:网页报500错误码 SEVERE ...
- 从零开始用 Flask 搭建一个网站(二)
从零开始用 Flask 搭建一个网站(一) 介绍了如何搭建 Python 环境,以及 Flask 应用基本项目结构.我们要搭建的网站是管理第三方集成的控制台,类似于 Slack. 本篇主要讲解数据如何 ...
- 输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)
以前只知道输入一个网站,然后看着返回琳琅满目的内容,其实中间经历的过程和步骤太多了.为了满足好奇心以及学习需要,特查阅了资料将其记录下来以备后续自己复习. 从我在地址栏输入www.zhihu.com ...
- 3分钟搭建一个网站?腾讯云Serverless开发体验
作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤. 编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间. 作为一个不精通代码的业务玩家, ...
- Access应用笔记<四>-一个完整的自动化报表搭建过程
距离之前的三篇日志已经很久啦,今天终于完成了一个比较完整的自动化报表搭建过程 基于公司数据保密原则,样板就不放到网上来了,简单说一下背景: 这次access实现的功能包括: 1)为部门整体搭建了一个员 ...
- [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站
原文: http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 原文的源代码在此 太多的教程教你些一个Hello, World!了, ...
- 从零开始用 Flask 搭建一个网站(一)
前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...
- 从零开始用 Flask 搭建一个网站(三)
从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...
- 从零开始用 Flask 搭建一个网站(四)
前言 从零开始用 Flask 搭建一个网站(三) 介绍了网页前端与后端.前端与前端之间数据的交流.本节主要介绍一下如何应用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以轻 ...
随机推荐
- 手机自动化测试:appium源码分析之bootstrap一
手机自动化测试:appium源码分析之bootstrap一 前言: poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.popte ...
- 测试开发Python培训:自动发布新浪微博-技术篇
测试开发Python培训:自动发布新浪微博-技术篇 在前面我们教大家如何登陆,大家需要先看自动登陆新浪微博(http://www.cnblogs.com/laoli0201/articles/48 ...
- laravel blade $loop
laravel 5.3 blade 新增$loop变量 文档如下: 在Laravel 5.3中,@foreach指令提供了更加强大的功能,在每一个@foreach循环体中都可以调用一个新的$loop变 ...
- .NET中数据访问方式(一):LINQ
语言集成查询(Language-Integrated Query),简称LINQ,.NET中的LINQ体系如下图所示: 在编程语言层次,LINQ对于不同的数据源提供了相同的查询语法,方便了程序员操 ...
- C++中的类继承(2)派生类的默认成员函数
在继承关系里面, 在派生类中如果没有显示定义这六个成员 函数, 编译系统则会默认合成这六个默认的成员函数. 构造函数. 调用关系先看一段代码: class Base { public : Base() ...
- Linux服务器性能查看分析调优
一 linux服务器性能查看 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc ...
- iOS实现高斯模糊效果(Swift版本)
给UIimage添加分类 extension UIImage { /// 高斯模糊 func gaussianBlur(var blurAmount:CGFloat) -> UIImage { ...
- Asp .Net MVC4笔记之目录结构
认识MVC从目录结构开始,从基本创建开始. App_Data 文件夹:App_Data 文件夹用于存储应用程序数据. App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册 ...
- vue router-link 上添加点击事件
在vue学习中遇到给router-link 标签添加事件@click .@mouseover等无效的情况 我想要做的是鼠标移上去出现删除标签,移除标签消失的效果 原代码: <router-lin ...
- redis 压缩链表
redis 压缩链表 概述 压缩链表是相对于普通链表而言的 当普通链表的数据越来越多, 链表查询性能会低效 当存储的数据较少时, 使用链表存储会浪费空间 压缩链表本质上是一个字符串 压缩链表内存储的数 ...