购买域名和域名实名认证
网站搭建之前我们需要注册自己的域名,因为我们不可能让用户通过“公网IP+端口”的方式访问我们的服务器,这样太不方便记忆了。我的域名是在阿里云万网购买,购买域名后要进行实名认证。
域名备案
备案需要有服务器和域名。
国家法律规定,使用中国大陆境内服务器托管你的网站时,你必须对你的网站进行备案申请。当你使用阿里云中国大陆境内节点的服务器时,你可以直接在阿里云备案管理系统中提交ICP备案申请。
注意:备案时填写个人网站名称时,最好不要带有博客、论坛、在线、社区、交流等字样,具体请参见个人网站命名要求
7-20个工作日就可以通过审核了。
在网站底部添加备案号
已经备案的网站域名,需要在网站底部添加备案号并将备案号链接到工信部网站,否则可能面临五千元以上一万元以下罚款。
添加备案号的方法请参考官方教程
服务器重置实例密码
新买的ECS服务器实例对root用户是没有设置初始密码的,ECS服务器的root密码需要重置才能用。重置步骤如下:选中ECS服务器实例,点击下面的重置密码按钮即可重置root用户的密码,密码在实例重启后生效
连接主机
1、通过控制台连接
首先云服务器有两个密码,一个是远程登录密码,一个是实例密码,就是我们平常登录服务器的root密码
通过控制台连接服务器需要使用到这两个密码,刚开始不知道密码,直接重置即可,打开你的ECS实例,修改或者重置密码位置如图:
注意:修改实例密码后需要重启服务器生效。
点击远程连接,输入远程连接密码,如图:
此时就可以输入root用户和密码(即实例密码)开始对服务器进行各项操作了
2、通过XShell等工具进行连接
通过收到的短信以及管理控制台的实例页面即可看到服务器的公网IP,此时通过XShell,CRT等工具
3、通过阿里云App进行连接
安装宝塔面板一步到位管理你的ECS
1、远程连接你的服务器
2、根据操作系统执行以下相应安装宝塔 Linux 面板命令
Centos 安装脚本:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
Ubuntu/Deepin 安装脚本:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Debian 安装脚本:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
Fedora 安装脚本:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
我的服务器的操作系统也是 Ubuntu,所以就直接复制 Ubuntu安装脚本,然后在 PuTTY 中点击右键即可自动粘贴,回车即可执行该命令,具体如下图所示:
稍等片刻后会询问安装 Bt-Panel 在 www 目录,我们直接输入 y 并回车即可。
然后继续等待让其自动安装,到最后安装成功后将会显示宝塔面板的地址、用户名和密码,具体见下图的红框位置。
建议直接选择复制宝塔面板的地址、用户名和密码并粘贴到本地保存以待后用,要不然忘记了就麻烦了。
3、配置服务器的安全组规则,在入方向添加 8888 端口
安全组不会操作,可以参考阿里云官方文档: 阿里云安全组的典型应用示例
如需完整使用宝塔的所有功能,除了要放行 8888 端口外,我们还需要放行以下端口,建议大家顺便把下面几个端口一起添加
20 、21、 39000-40000端口(linux 系统)、22 (SSH)、3000-4000(windows系统)、80、443(网站及SSL)、3306 (数据库远程连接)、888 (phpmyadmin)
端口 | 服务 | 说明 |
---|---|---|
21 | FTP | FTP服务所开放的端口,用于上传、下载文件 |
22 | SSH | SSH端口,用于通过命令行模式或远程连接软件(例如PuTTY、Xshell、SecureCRT等)连接Linux实例 |
23 | Telnet | Telnet端口,用于Telnet远程登录ECS实例 |
25 | SMTP | SMTP服务所开放的端口,用于发送邮件。 |
53 | DNS | 用于域名解析服务器(Domain Name Server,简称DNS)协议。如果在安全组出方向实行白名单方式,需要放行此端口才能实现域名解析。 |
80 | HTTP | 用于HTTP服务提供访问功能,例如,IIS、Apache、Nginx等服务。 |
110 | POP3 | 用于POP3协议,POP3是电子邮件收发的协议 |
143 | IMAP | 用于IMAP(Internet Message Access Protocol)协议,IMAP是用于电子邮件的接收的协议 |
443 | HTTPS | 用于HTTPS服务提供访问功能。HTTPS是一种能提供加密和通过安全端口传输的一种协议 |
1433 | SQL Server | SQL Server的TCP端口,用于供SQL Server对外提供服务 |
1434 | SQL Server | SQL Server的UDP端口,用于返回SQL Server使用了哪个TCP/IP端口 |
1521 | Oracle | Oracle通信端口,ECS实例上部署了Oracle SQL需要放行的端口 |
3306 | MySQL | MySQL数据库对外提供服务的端口 |
3389 | Windows Server Remote Desktop Services | Windows Server Remote Desktop Services(远程桌面服务)端口,可以通过这个端口使用软件连接Windows实例 |
8080 | 代理端口 | 同80端口一样,8080端口常用于WWW代理服务,实现网页浏览。如果您使用了8080端口,访问网站或使用代理服务器时,需要在IP地址后面加上:8080 。安装Apache Tomcat服务后,默认服务端口为8080 |
137、138、139 | NetBIOS协议 | 137、138为UDP端口,通过网上邻居传输文件时使用的端口。139通过这个端口进入的连接试图获得NetBIOS/SMB服务。 |
4、宝塔安装套件
成功登录宝塔 Linux 面板后台后会显示推荐安装的套件,如 LNMP 和 LAMP。LNMP和LAMP环境主要的区别在于web服务器上面,一个套件使用的是Nginx服务器、一个套件使用的是Apache服务器。
相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。
如果你不了解两种的区别和差异,请使用宝塔官方默认的推荐安装(LNMP套件),安装方式这里根据自身实际的情况选择,如果当前环境为生产环境,请使用(编译安装|也叫源码安装),确保后期程序运行的稳定性,(极速安装|也叫RPM安装)主要用体验和测试使用,正式情况下请避免使用(极速安装),如果不需要这些套件也可以在面板左侧功能栏选择《软件管理》,在当前列表自行选择安装程序。
成功安装 LNMP 套件后点击“面板设置”修改安全入口地址、面板用户名和密码,毕竟第 2 步所获得的安全入口、用户名和密码不好记忆,建议修改。
部署到服务器
1、解析域名
注:若github page有绑定域名的话,先把绑定解除,并且将解析暂停,否则会冲突。
到域名管理处,点击解析
2、宝塔创建站点
宝塔面板安装完成后,在导航栏点击网站,选择添加站点。
设置如下,在域名处填写自己的域名,可填写多个 (填写进的域名在解析完成后可以访问到该网站)
生成站点后,点击网站名或者后面的设置,可以进入站点设置来添加一些新的域名以及二级域名等等。
其中blog为自定义的二级域名,想不想设置随意。设置了就需要在解析时填写对应的主机记录。
域名解析列表中
域名解析完成后,等待几分钟生效,即可通过域名访问该服务器。
3、使用webhook实现同步页面
虽然服务器是配置好了,但是宝塔并不支持代码托管,也就是说使用hexo d
命令推送的代码并不能推到宝塔上来实现更新网站。于是使用webhook来实现与github代码同步。
原理:
3.1、安装宝塔WebHook
在宝塔面板导航栏点击软件商店。搜索 webhook
点击安装。
3.2、配置webhook
安装完成后,点击设置,(可以勾选首页显示。)
点击添加,名称随意,执行脚本先随便填写一点内容,点击提交后再编辑脚本。
(若出现编辑不能保存的情况,则在宝塔面板的右上角点修复)
添加完成后点击编辑,删除原来随意填写的内容,添加如下代码并修改gitHttp。
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#git项目路径
gitPath="/www/wwwroot/【站点根目录】"
#git 网址
gitHttp="【仓库git地址】"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo -Hu www git clone $gitHttp gittemp --depth=1
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
#拉取最新的项目文件
echo "拉取最新文件"
sudo -Hu www git reset --hard origin/master
sudo -Hu www git pull origin master
#设置目录权限
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
gitHttp路径为github代码仓库的地址,需要到代码库中查看(带.git尾缀的地址,即hexo部署时配置 _config.yml
时填写的地址。),点击复制键进行复制
粘贴后格式应该如下
gitHttp="https://github.com/XXXXXX.git"
随后点击右下角的保存即可。
3.3、github配置hook
编辑完成后,点击查看密钥
复制好密钥以及下方URL的&
前面的内容(全复制也可以)
进入github的网站代码库的设置,导航栏选webhook,然后点击Add webhook
填写内容
填写好后点击Add webhook。
然后回到面板,点击测试,然后在日志中查看结果。
![同时回到github的webhook界面,编辑刚刚的钩子
在最下面可以看到成功的信息。
这样以后在本地进行的deploy,服务器最自动钩取github仓库的master分支,实现将博客部署到服务器上。然后使用域名就可以进行访问(不要加https://)。
阿里云http免费升级https
1、获取HTTPS安全证书
登录阿里云管理控制台,选择SSL证书
然后选购SSL证书
选择免费型
支付成功后返回证书控制台
点击证书申请
填写要绑定的域名和个人信息
然后进行验证信息,提交审核
大约一个小时后,证书审核完毕,下载证书
根据您的服务器类型选择证书下载,我的是Nginx
2、宝塔配置SSL
进入站点,选择SSL配置,粘贴下载的证书密钥key和证书pem,选择保存,然后开启强制HTTPS
迁移到另一台服务器
由于阿里云服务器续费比较贵,所以需要经常将数据进行迁移
可以使用宝塔一键迁移工具,具体教程:https://www.bt.cn/bbs/thread-42566-1-1.html
由于我使用了又拍云进行CDN加速,如果你设置了回源管理里的源站设置,迁移服务器时,记得将源站设置里的源站地址改为新服务器的ip地址