本项目是以beego学习为主,使用的是前后端分离的开发方式,本次开源的也仅仅是后端api这部分,供大家学习参考,也欢迎给我报漏洞,望不要攻击我的博客;集成了用户注册登录,通过token实现会话处理,集成了文件上传下载功能。
项目信息:
- 后端:beego框架
- 前端:Vue
一.使用项目该项目
获取项目
go get github.com/msterzhang/go_blog_api
1.安装相关依赖
后端框架
go get github.com/astaxie/beego
Mysql驱动
go get github.com/go-sql-driver/mysql
Redis缓存驱动,用于用户token回话,也可以用于缓存博客数据
github.com/go-redis/redis
邮件发送,具体按照你的需求,见config文件
go get gopkg.in/gomail.v2
2.打开app.conf,修改host,这个使用来确定你上传文件的下载路径的
appname = weblog
httpport = 8003
runmode = dev
host=http://localhost:8003
3.打开数据库config.go文件,设置mysql数据库信息,数据库请先创建好,程序会自动创建相关表
func init() {
orm.RegisterDriver("mysql", orm.DRMySQL)
orm.RegisterDataBase("default", "mysql", "username:password@/数据库名字?charset=utf8&loc=Asia%2FShanghai")
logs.Info("\n连接数据库成功!")
}
二.api文档
这个项目的api文档,我使用的是postman创建。
地址:
https://documenter.getpostman.com/view/6651807/S1EJYMDb
三.关于项目部署
我采用的是Nginx代理的方式部署网站,其中有几处需要注意:
Nginx相关命令:
安装(以Ubuntu为例)
sudo apt-get install nginx
停止
sudo service nginx stop
启动
sudo service nginx start
1.创建Nginx代理转发文件blogapi.conf,放在conf.d目录下,这是开启https的版本,具体如何获取,请看我的博客,不开启的很简单,改改就可以
server {
charset utf-8;
listen 443 ssl;
server_name api.zhang18.top;
ssl_certificate /etc/letsencrypt/live/zhang18.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zhang18.top/privkey.pem;
access_log /root/go/src/weblog/access.log;
location / {
try_files /_not_exists_ @backend;
}
location @backend {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8003;
}
}
server {
listen 80;
server_name api.zhang18.top;
return 301 https://$host$request_uri;
}
2.给权限,打开nginx.conf,修改如下
#user www-data;
user root;
3.上传文件大小控制,Nginx默认是不大于20M,所以你需要更改规则,打开nginx.conf,修改如下
client_max_body_size 3072m;
4.项目运行
服务器编译项目:
go build main.go
运行项目
./main
常驻后台运行
nohup ./main &
四.如何关闭后台任务?
查看后台任务,找到进程号
ps -ef
杀死进程
kill 8999
QQ群:929724129