在我无意间听说了甲骨文云有永久免费vps,于是查了一下(啊什么?火星建在。),只需要提供信用卡即可注册激活账户,这不巧了吗,正好我手里就有信用卡。于是我便抱着试一试前去注册了。

注册甲骨文账户

首先进入甲骨文云然后注册一个属于自己的账户。
按照他的步骤操作,地区选择中国,姓名随意,邮箱填写自己的。
信用卡会扣费验证随后退还。验证通过后选择主区域,这里我选择了东京大阪区。

创建vps

接下来创建实例,名称随意,更改映像为Ubuntu。

实例1

其他的配置默认,选择 无SSH秘钥。
点击 显示高级选项,粘贴脚本开启root登录,密码ubunturoot

#!/bin/bash
echo root:ubunturoot |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart

实例2

点击 创建 即可。

ps:不能用秘钥登录,否则安装博客后会导致无法登录,具体原因还不清楚只能先使用密码来登录。
ps:甲骨云有时候会出现无法连接的情况,可能是ip被封锁了,实例创建完成后先ping一下服务器ip。

配置安全组

在实例详情里面点击 子网 -> Default Security List -> 添加入站规则

安全1

安全2

我们需要添加的端口都是tcp协议。
网页端口 80;https端口 443;宝塔默认端口 8888。

安全3

全部添加完成后就可以进行下一步操作了。

配置实例

连接实例,ssh工具我使用了Aechoterm,名称随意,登录用户用root,密码使用ubunturoot(如果你更改了密码,就填写自己的密码)。

ssh连接

成功连接实例后,我们先输入命令更新系统。

sudo apt-get update

等进度跑完后,我们再依次输入命令关闭系统的防火墙,重启系统。

rm -f /etc/iptables/rules.v4
rm -f /etc/iptables/rules.v6
reboot

ps:好像只有甲骨云的ubuntu会开启防火墙,阿里云的就没有。
ps:不用担心关闭后出现风险,服务器有安全组。

安装Halo

重新连接到实例,首先进入halo博客官网点击 官方文档 -> 安装指南 -> 在Linux环境部署。
官方的教程非常详细,我们只要按照教程开始配置就行了。
注意:我们只需要做到第 7 测试运行 Halo ,后面的就不用做了,只要测试运行可以通过ip端口访问就没问题了。
接下来按 Ctrl+z 结束任务。

ps:按照官方教程,不用给sudo权限好像也可以,未发现有异常。

安装宝塔面板

进入宝塔面板官网,按照教程输入命令等待他安装完成。
复制外网访问链接,输入他给出的账户和密码登录。

因为我已经安装好了,这里在网上找了一张旧图。
在首页弹窗里面,我们只需要 LNMP -> Nginx 版本默认就行了,把其他的都取消勾选,点击一键安装。

宝塔1

完成后,我们点击左侧的 网站 -> java项目 -> 添加java项目。

宝塔2

jar选择刚才下载的halo.jar,端口改为8090,添加项目执行命令。

su - halo
java -server -Xms256m -Xmx256m -jar halo.jar

项目用户改为root,开机启动打钩,然后选择提交。

宝塔3

配置Nginx

配置Nginx需要你自己拥有域名,不是随便输一串英文!!!
如果你没有域名可以去购买一个,例如万网,腾讯云等等。

以上操作完成后,你就能看见一个java项目已经在运行了。
接下来在项目右侧找到 设置 -> 域名管理。
我们先添加一个域名,这个域名就是你后续访问博客需要用到的。

添加域名

域名添加完成后点击下面的 外网映射,打开开关。

接着点击下面的 ssl 这里你可以选择 Let’s Encrypt 申请证书 或者 其他证书 输入你自己申请的证书。

完成以后打开右上角 强制https。

ssl1

回到java项目一栏,可以看见右侧有一个 ssl证书 状态是 未部署,这时候点击 部署。
在部署完成后,他会变成 剩余时间。

ssl2

再重新打开 设置,选择 配置文件。

下面这段是需要用到的主要配置,但是不能直接抄进去。

server
{
  listen 80;
  listen 443 ssl http2;
  server_name blog.yudragon.cn;

  location / {
    proxy_pass http://127.0.0.1:8090/;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

我们需要在配置文件里面找到以下默认的配置,注释掉。

nginx1

nginx2

nginx3

这些配置呢,建议先初步了解一下,看看教程什么是nginx,以及他们的配置文件是怎么写的。

一切完成,恭喜你的博客已经建成了!输入你的域名进行访问吧。

甲骨云实例更换ip

在实例详情里面找到 VNIC -> instance -> IPv4地址 -> 右侧编辑 -> 没有公共IP -> 更新。
等他更新完成后,再次编辑 临时公共IP -> 更新。
到这里ip的更换就完成了,你可以再次ping一下ip。
ps:有可能你更换后依然是被封锁的ip,只需要多次更换即可解决。

换ip1

换ip2

换ip3

总结

第一次接触这个真是太难了,一开始vps一直连接不上,后来才知道可能是ip被封锁。

接下来用halo安装博客,每次测试运行后就无法用密钥登陆vps了,搞半天也找不到原因,无解,只能退一步选择密码登陆。

等我用了密码登陆,安装好halo,测试运行,完美,一切都是那么正常,接下来输入ip端口访问。恩?怎么提示网站不存在?我又看一眼安全组,这也放行了啊,我甚至尝试在安全组放行所有端口再次访问,依然不存在。傻了。

磕磕碰碰还得靠谷歌娘。好家伙,这次在系统内关闭了防火墙,重启,运行,访问,成功。yes!

接着配置Nginx反代,我看了官方教程,说改这改那,我这改了怎么也不行啊。我又看了一眼配合宝塔的教程,我估摸着又装了宝塔,按照官方教程再改。还是不行。

没办法啊,没接触过Nginx,我只能先找个视频讲解一下,看完视频的我略知一二,回来再看,我这改了半天,全是错的。

为了搞博客不知重建了多少次vps,特别是一开始无法运行halo后用密钥登陆,真是头都大了。

卡在最久的地方就是配置Nginx,改了又改,死活进不去。