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 就可以轻 ...
随机推荐
- Html5 Canvas笔记(1)-CanvasAppTemplate代码
学了一段时间的Html5 Canvas,现想一段一段的将学习笔记整理出来放上来,先整理一段Canvas的模版文件代码,以后建立Canvas程序就不用重新写这些代码了,当然最好是将这个Html代码保存到 ...
- 浩哥解析MyBatis源码(五)——DataSource数据源模块之非池型数据源
1 回顾 上一篇中我解说了数据源接口DataSource与数据源工厂接口DataSourceFactory,这二者是MyBatis数据源模块的基础,包括本文中的非池型非池型数据源(UnpooledDa ...
- R语言生成随机数
1.概述 作为一种语言进行统计分析,R有一个随机数生成各种统计分布功能的综合性图书馆.R语言可以针对不同的分布,生成该分布下的随机数.其中,有许多常用的个分布可以直接调用.本文简单介绍生成常用分布随机 ...
- 刷机无法连接4g
只显示2g,gsm only 无法修改,本人刷cm13和lineageOs都遇到过这样的情况,可能与手机有关xt1570(moto x style),特在此分享,希望有用 1.首先在设置中将sim卡网 ...
- js 模板引擎
template = document.querySelector('#template').innerHTML, result = document.querySelector('.result') ...
- 【Hololens】微软Hololens虚拟现实视频集
混合虚拟现实(Hololens眼镜) 微软还是混合虚拟现实的行业领导者,Hololens眼镜在很多行业有了令人印象深刻的应用和演示.譬如: Hololens中文宣传片: https://pan.bai ...
- java swing组件的一些基本属性
JLabel get/setText(): 获取/设置标签的文本. get/seticon(): 获取/设置标签的图片. get/setHorizontalAlignment(): 获取/设置文本的水 ...
- JavaScript分支语句if, else if, switch 案例详解
if语句主要是在需要判断,或者在可知有多少种情形时使用的语句.A==B?"A等于B";"A不等于B"; 基本结构: if(判断条件){ ...
- Tarjan-求强连通分量
知识点-Tarjan 强连通分量:在一个图的子图中,任意两个点相互可达,也就是存在互通的路径,那么这个子图就是强连通分量(或者称为强连通分支).如果一个有向图的任意两个点相互可达,那么这个图就称为强连 ...
- 基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
1. 介绍 在过去几年中,神经网络已经有了很壮观的进展,现在他们几乎已经是图像识别和自动翻译领域中最强者[1].为了从海量数据中获得洞察力,需要部署分布式深度学习.现有的DL框架通常需要为深度学习设置 ...