第一次使用云服务器部署项目, 也算是一次学习, 还挺有意思, 有了博客之后自己也会积极学习 做总结吧? 希望自己不要三分钟热度
本次是参考社区一篇大佬的文章, 大家可以去看下参考资料, 我的应该是细致补充版, 这次算是对学过的知识做一次总结, 不过程序员不就是给出大概步骤, 然后自己在解决问题的过程慢慢成长吗?
服务器
-
购买腾讯云服务器 (学生套餐安排上)
-
选择系统 (跟着大佬选的, 之前没使用过其他系统)
我在这里直接加 8 块钱, 买了一年的 cn 域名, 喜欢其他的小伙伴也可以自行去选购 -
创建云服务器登录方式选择密码方式 (方便上传文件)
因为我直接点了登录, 但是我发现我不知道初始密码, 我就直接重置了密码
填写新密码后, 会提示让你重启服务器, 记得勾选强制重启 -
配置好安全组规则
记得把设置好的规则分配给服务器
域名
- 实名认证 (不实名认证无法解析域名, 听说需要备案, 但是我的没有备案也可以使用)
我的已经过了, 正常这里有链接可点进去实名制
安装服务
1.登录云服务器 (Mac 直接打开终端, 我用的是 Windows 需要安装软件 Secure CRT)
ssh -p 22 云服务器用户名@云服务器公网IP
# 例如
ssh -p 22 ubuntu@10.22.33.49
2.安装 Docker
sudo apt-get install docker.io
3.安装 Nginx
sudo apt-get install nginx
4.安装 Vim
sudo apt-get install vim
5.使用 Docker 安装 Solo 和 MySQL
# 下载 MySQL 镜像
sudo docker pull mysql
# 启动镜像 MYSQL_ROOT_PASSWORD=mysql的root密码
docker run -d --name mysql-5.7 --network=host -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 登录 MySQL
mysql -uroot -p
# 创建数据库
CREATE DATABASE solo DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ciutf8mb4_general_ci
# 退出 MySQL
quit
# 下载 Solo 博客镜像
# JDBC_PASSWORD (MySQL的密码)
# listen_port (启动端口)
# server_scheme (访问协议)
# server_host (请求的地址)
# server_port (请求的端口)
# server_port 如果你是云服务器配置 记得要留空 这算是个小坑
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="root" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
b3log/solo --listen_port=8080 --server_scheme=https --server_host=LilNn99.cn --server_port=
# 查看启动结果 (这种方式只可看到运行状态下的服务)
sudo docker ps
# 结果如下就表示启动成功 (STATUS 都为UP表示启动成功)
配置域名和代理
1.申请 SSL 证书 (腾讯云有提供免费证书一年)
申请后, 会让你去解析你的域名, 可以先按照官方文档配置, 等你的实名认证过了以后, 就会自动下发证书, 关注微信公众号是有推送提醒的
2.下载 SSL 到本地, 并解压
3.上传 SSL 到云服务器 (Windows 推荐使用图形化工具 WinScp)
scp -r 本地SSL文件目录 云服务器用户名@云服务器公网IP:/home/云服务器用户名
此命令使用时, 遇到不少坑点, 我绕开了, 比如, 这里的本地 SSL 文件夹目录 我当时是放在了桌面, 当时写的命令, C:\Users\LeeAmoreZmy\Desktop\SSL 但是提示错误信息 ssh: Could not resolve hostname c: Name or service not known 后来 Google 到的解决方式是忽略 c 盘盘符, 之后又出现找不到本地目录的错误提示 UsersLeeAmoreZmyDesktopwww.lilnn99.cnNginx: No such file or directory, 当时参考的解决方案 附上链接 大家可以去参考下, 有遇到此类问题的小伙伴, 也可以留言告诉我怎么解决的, 感谢!
4.配置 Nginx
# 登录云服务器, 执行如下
sudo vim /etc/nginx/sites-enabled/default
# 将文本里面的内容全删除,拷贝如下文本内容
# 修改server_name为自己的域名
# 修改ssl_certificate和ssl_certificate_key的文件路径
# 修改proxy_pass为自己的域名和solo启动端口
server {
listen 443 ssl;
server_name www.LilNn99.cn,LilNn99.cn;
ssl_certificate /home/ubuntu/Nginx/1_www.lilnn99.cn_bundle.crt;
ssl_certificate_key /home/ubuntu/Nginx/2_www.lilnn99.cn.key;
location / {
proxy_pass https://www.LilNn99:8080;
}
}
server {
listen 80;
listen [::]:80;
server_name www.LilNn99.cn,LilNn99.cn;
return 301 https://$host$request_uri;
}
# 保存并退出后重启nginx
nginx -s reload
调试
进行到这一步时, 遇到了 Latke 配置错误, 可看官方文档
安装如遇请留言, 一起探讨学习
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于