天天看点

beego项目线上部署

前提

  1. 拥有一台云服务器(这里演示是阿里云)
  2. 已安装Nginx服务

部署

   配置nginx

  1. nginx代理配置
    server {
      listen 80;
      server_name demo.com; # 线上域名
    
      charset utf-8;
    
      root /data/gocode/src/myproject; # 项目目录
      
      #error_page 404 /404.html;
      #error_page 502 /502.html;
      
      location /(css|js|fonts|img)/ {
            access_log off;
            expires 1d;
    
            root "/data/gocode/src/myproject/static";
            try_files $uri @backend;
        }
    
        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:10010; # Go项目启动端口改成10010
        }
    
      
    }
               

    使用nohup

  1. 首先编写一个beego.sh脚本,将其放在/usr/local/sbin目录下
    vim /usr/local/sbin/beego.sh
    
    #! /bin/bash
    cd /data/gocode/src/myproject && bee run
    
    # /data/gocode 是GOPATH路径
    # /data/gocode/src/myproject 是项目路径
    # bee run 启动
               
  2. 使用nohup运行脚本
    mkdir /var/log/beego # 创建日志目录
    chmod 755 /usr/local/sbin/beego.sh # beego.sh赋值可执行权限
    # 0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error)
    nohup /usr/local/sbin/beego.sh > /var/log/beego/beego.log 2>&1 & # 2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到/var/log/beego/beego.log中           
  3. 关闭后台运行
    ps -ef | grep bee # 查询beego.sh和bee运行进程
    root      8218  7880  0 Jul01 pts/0    00:00:00 /bin/bash /usr/local/sbin/beego.sh
    root      8224  8218  0 Jul01 pts/0    00:00:00 bee run
    root     10964  7880  0 10:05 pts/0    00:00:00 grep --color bee
    
    lsof -i :10010 # 查询项目端口
    \COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    myproject 8278 root    3u  IPv6  71490      0t0  TCP *:rxapi (LISTEN)
    
    
    kill -9 8218 8224 8278
    
               

    使用screen部署

  1. 开启screen会话
    cd /data/gocode/src/myproject # 进入项目目录
    screen # 在该项目目录开启一个会话
    bee run # 运行项目
               
  2. 退出会话
    ctrl + A 再按 d # ctrl键 + A(大写字母) 再按 d(小写字母)           
  3. 恢复会话
    screen -ls # 查看会话列表
    There is a screen on:
    	7464.pts-3.one	(Detached)
    1 Socket in /var/run/screen/S-root.
    
    screen -rD 7464 # 恢复会话           
  4. 删除会话
    # 如是Detached状态使用
    screen -X -S 7464 quit
    
    # 如是Dead状态使用
    screen -wipe 7464