在我无意间听说了甲骨文云有永久免费vps,于是查了一下(啊什么?火星建在。),只需要提供信用卡即可注册激活账户,这不巧了吗,正好我手里就有信用卡。于是我便抱着试一试前去注册了。
注册甲骨文账户
首先进入甲骨文云然后注册一个属于自己的账户。
按照他的步骤操作,地区选择中国,姓名随意,邮箱填写自己的。
信用卡会扣费验证随后退还。验证通过后选择主区域,这里我选择了东京大阪区。
创建vps
接下来创建实例,名称随意,更改映像为Ubuntu。
其他的配置默认,选择 无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
点击 创建 即可。
ps:不能用秘钥登录,否则安装博客后会导致无法登录,具体原因还不清楚只能先使用密码来登录。
ps:甲骨云有时候会出现无法连接的情况,可能是ip被封锁了,实例创建完成后先ping一下服务器ip。
配置安全组
在实例详情里面点击 子网 -> Default Security List -> 添加入站规则
我们需要添加的端口都是tcp协议。
网页端口 80;https端口 443;宝塔默认端口 8888。
全部添加完成后就可以进行下一步操作了。
配置实例
连接实例,ssh工具我使用了Aechoterm,名称随意,登录用户用root,密码使用ubunturoot(如果你更改了密码,就填写自己的密码)。
成功连接实例后,我们先输入命令更新系统。
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 版本默认就行了,把其他的都取消勾选,点击一键安装。
完成后,我们点击左侧的 网站 -> java项目 -> 添加java项目。
jar选择刚才下载的halo.jar,端口改为8090,添加项目执行命令。
su - halo
java -server -Xms256m -Xmx256m -jar halo.jar
项目用户改为root,开机启动打钩,然后选择提交。
配置Nginx
配置Nginx需要你自己拥有域名,不是随便输一串英文!!!
如果你没有域名可以去购买一个,例如万网,腾讯云等等。
以上操作完成后,你就能看见一个java项目已经在运行了。
接下来在项目右侧找到 设置 -> 域名管理。
我们先添加一个域名,这个域名就是你后续访问博客需要用到的。
域名添加完成后点击下面的 外网映射,打开开关。
接着点击下面的 ssl 这里你可以选择 Let’s Encrypt 申请证书 或者 其他证书 输入你自己申请的证书。
完成以后打开右上角 强制https。
回到java项目一栏,可以看见右侧有一个 ssl证书 状态是 未部署,这时候点击 部署。
在部署完成后,他会变成 剩余时间。
再重新打开 设置,选择 配置文件。
下面这段是需要用到的主要配置,但是不能直接抄进去。
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;
}
}
我们需要在配置文件里面找到以下默认的配置,注释掉。
这些配置呢,建议先初步了解一下,看看教程什么是nginx,以及他们的配置文件是怎么写的。
一切完成,恭喜你的博客已经建成了!输入你的域名进行访问吧。
甲骨云实例更换ip
在实例详情里面找到 VNIC -> instance -> IPv4地址 -> 右侧编辑 -> 没有公共IP -> 更新。
等他更新完成后,再次编辑 临时公共IP -> 更新。
到这里ip的更换就完成了,你可以再次ping一下ip。
ps:有可能你更换后依然是被封锁的ip,只需要多次更换即可解决。
总结
第一次接触这个真是太难了,一开始vps一直连接不上,后来才知道可能是ip被封锁。
接下来用halo安装博客,每次测试运行后就无法用密钥登陆vps了,搞半天也找不到原因,无解,只能退一步选择密码登陆。
等我用了密码登陆,安装好halo,测试运行,完美,一切都是那么正常,接下来输入ip端口访问。恩?怎么提示网站不存在?我又看一眼安全组,这也放行了啊,我甚至尝试在安全组放行所有端口再次访问,依然不存在。傻了。
磕磕碰碰还得靠谷歌娘。好家伙,这次在系统内关闭了防火墙,重启,运行,访问,成功。yes!
接着配置Nginx反代,我看了官方教程,说改这改那,我这改了怎么也不行啊。我又看了一眼配合宝塔的教程,我估摸着又装了宝塔,按照官方教程再改。还是不行。
没办法啊,没接触过Nginx,我只能先找个视频讲解一下,看完视频的我略知一二,回来再看,我这改了半天,全是错的。
为了搞博客不知重建了多少次vps,特别是一开始无法运行halo后用密钥登陆,真是头都大了。
卡在最久的地方就是配置Nginx,改了又改,死活进不去。