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 就可以轻 ...
随机推荐
- [SinGuLaRiTy] COCI 2016~2017 #5
[SinGuLaRiTy-1012] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 最近神犇喜欢考COCI...... 测试题目 对于所有的 ...
- 4.Redis常用命令:List
在Redis中,List类型是按照插入顺序排序的字符串链表.和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素.在插入时,如果该键并不存在,Redis将为该键创建 ...
- Java界面编程-建立一个可以画出图形的简单框架
引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 im ...
- windows环境搭建jira 详解
一.事前准备 1:JDK下载并安装:http://www.oracle.com/technetwork/java/javase/downloads/index.html2:MySQL JDBC连接驱动 ...
- MYSQL中 ENUM 类型的详细解释
ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果将一个无效值插 ...
- .elf格式内容
arm-linux-ld 可以将程序链接成我们arm平台下的可运行的程序 以之前使用过的led程序为例: 首先: arm-linux-gcc -g -c led.S (-g是表示产生调试信息, -c是 ...
- AOP学习笔记一
软件开发的目的是为了解决各种需求,包括业务需求和系统需求.目前,业界通过使用面向对象的编程思想,已经可以对业务需求等普通关注点进行很好的抽象与封装,并且使之模块化.但是对于系统需求一类的关注点来说,情 ...
- 1133: 零起点学算法40——多组测试数据(a+b)II
1133: 零起点学算法40--多组测试数据(a+b)II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitte ...
- mysql常用技能分享
一,MySQL查询的五种子句: 1,where(条件查询),常用的运算符: ①比较运算符 > , < , = , != , >= , <= , in( ) , between ...
- Android 代码库(自定义一套 Dialog通用提示框 )
做Android开发五年了,期间做做停停(去做后台开发,服务器管理),当回来做Android的时候,发现很生疏,好些控件以前写得很顺手,现在好像忘记些什么了,总要打开这个项目,打开那个项目 ...