程序员的资源宝库

网站首页 > gitee 正文

beego项目部署 beego 部署

sanyeah 2024-03-29 16:19:16 gitee 9 ℃ 0 评论

bee工具安装和升级 

     export GO111MODULE=on
     export GOPROXY=https://goproxy.cn

     go install github.com/beego/bee/v2@latest
     beego 必须是2.0以上的版本

     go mod tidy

      安装完之后,bee可执行文件默认存放在$GOPATH/bin里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中

      

 bee操作项目命令

     bee new myproject
     bee generate routers
     bee fix
     bee update
     bee run
     bee run和go run main.go有区别

     

前端项目部署 

        

[root@ddos conf.d]# vi default.conf

server {
    listen       8000;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/soms/dist;
        try_files $uri $uri/ @router;
        index  index.html index.htm;
    }

    location @router {
         rewrite ^.*$ /index.html last;
    }

    location /v1 {
         proxy_pass http://127.0.0.1:8889;
     }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
虚拟主机1
[root@ddos conf.d]# vi suyuan.conf 

server {
    listen       8001;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/suyuan/dist;
        try_files $uri $uri/ @router;
        index  index.html index.htm;
    }

    location @router {
         rewrite ^.*$ /index.html last;
    }

    location /v1 {
         proxy_pass http://127.0.0.1:8800;
     }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
虚拟主机2       

     web访问服务

      

实现http调用 

import (
    "context"
    "encoding/json"
    "errors"
    "fmt"
    "github.com/beego/beego/v2/core/logs"
    beego "github.com/beego/beego/v2/server/web"
    webcontext "github.com/beego/beego/v2/server/web/context"
    "suyuan/models"
    "io/ioutil"
    "net/http"
    "reflect"
    "strings"
    "time"
    "crypto/md5"
    "encoding/hex"
)
View Code
        /*
         原来系统的代码
        apikey := beego.AppConfig.DefaultString("WBAPI", "")
        url := "https://api.threatbook.cn/v3/scene/ip_reputation?lang=zh&resource=" + w.Ipaddress + "&apikey=" + apikey
        resp, err := http.Get(url)
        */

        /*
          修改后的接口代码
          1.删除apikey url参数
          2.添加flag url参数
          3.添加一个http header
        */

       uid := webcontext.Context.Input.Session("_uid")
       user, err:= models.UserModel.GetById(uid.(int64))
       if err != nil {
        return err
       }
       url := "https://api.threatbook.cn/v3/scene/ip_reputation?lang=zh&resource=" + w.Ipaddress+ "&flag=" + user.UserName

       tokenstr := "flag="+user.UserName+"AAAA"
       has := md5.New() // 创建md5算法
       has.Write([]byte(tokenstr)) // 写入需要加密的数据
       b := has.Sum(nil) // 获取hash值字符切片;Sum函数接受一个字符切片,这个切片的内容会原样的追加到abc123加密后的hash值的前面,这里我们不需要这么做,所以传入nil
       token := hex.EncodeToString(b)// 通过hex包的EncodeToString函数,将数据转为16进制字符串; 打印 e99a18c428cb38d5f260853678922e03
       UpperTokenStr := strings.ToUpper(token)
       
       

       //发送http请求并携带自己的header
       //resp, err := http.Get(url)
        req, err := http.NewRequest("GET", url, nil)
        if err != nil {
            return err
        }

        req.Header.Add("token", UpperTokenStr)
        resp, err := http.DefaultClient.Do(req)
        
        defer resp.Body.Close()
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            return err
        }
        tm := make(map[string]interface{})
        err = json.Unmarshal(body, &tm)
        if err != nil {
            return err
        }
        realData, ok := tm["data"]
        if !ok {
            err = errors.New(reflect.ValueOf(tm["verbose_msg"]).String())
            return err
        }
View Code

 

项目问题排查

       

       

 

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表