不败君

前端萌新&初级后端攻城狮

在Windows和Linux部署Beego项目

在Windows和Linux部署Beego项目

2020-11-08 00:24:16

围观(1205)

相关文章:

安装GO并体验了一下Beego框架

使用GO语言Beego框架开发一个简易留言板 (本文就是使用这篇文章的源码进行部署)

上面两篇文章写了一下体验 Beego 和使用 Beego 开发一个简易留言板,开发的时候可以使用 bee run 命令运行,并在浏览器打开 localhost:8080 可访问。

或者 Windows 下运行项目根目录的 .exe 二进制文件后可以访问 localhost:8080

但是如果想要一些例如 日志分析 / SSL配置 / 多域名配置 之类的功能,就需要搭配 Nginx 或者 Apache ,所以本文使用 Nginx 进行反向代理至 Beego 的项目。


Windows 部署

需要先将源码打包成二进制文件。

Windows 的打包命令:

bee pack -be GOOS=windows

在 Windows 打包后,在根目录有一个二进制 .exe 文件,运行这个文件,或者将该文件放入系统服务。直到可在浏览器访问 localhost:端口号 可访问网站即可。(端口号可在项目的 app.conf 文件配置)

接着就是配置 Nginx ,在 Nginx 添加一个配置文件并写入:

server {
    listen       80;
    server_name  bubaijun.test; # 改为你自己的域名

    charset utf-8;

    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;

        root "E:/soft/GOPATH/bin/blog/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:8080;
    }
}

注意配置的 root 参数的路径,复制博主的配置后需要自己修改。写入完成后重启 Nginx.

如果是线上拥有独立 IP 的服务器,可以直接解析域名后通过域名访问,如果像博主这样是本地而且还没独立 IP 则需要修改电脑的 hosts

hosts 文件所在位置是 C:\Windows\System32\drivers\etc

可以像博主这样添加一行:

127.0.0.1 bubaijun.test

完成后即可在浏览器访问 bubaijun.test 部署就完成了。


Linux Centos 部署

使用命令打包成 Linux 二进制运行文件.

Linux 打包命令:

bee pack -be GOOS=linux

接着可以使用 SFTP 或者其他方式将文件传到 Centos 系统。

解压传到服务器的二进制包(这两句命令只针对于博主开发的那个简易留言板,如果是其他项目需要改一下包名):

mkdir /home/blog
tar -xvf blog.tar.gz -C /home/blog

如果需要修改数据库配置,可以使用 VIM 命令进行编辑配置文件:

vim /home/blog/conf/app.conf

编辑配置后还需要给 blog 这个目录权限:

chmod 777 /home/blog
chmod +x /home/blog

运行应用(需要切换到解压的应用根目录):

nohup ./blog &

可以查看端口使用情况:

netstat -ntlp

如果返回:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      10406/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      988/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1176/master
tcp6       0      0 :::33060                :::*                    LISTEN      1021/mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      1021/mysqld
tcp6       0      0 :::8080                 :::*                    LISTEN      10572/./blog
tcp6       0      0 :::22                   :::*                    LISTEN      988/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1176/master

看到 8080 端口是被 blog 应用占用即可。


接着就是配置 Nginx 默认配置,引入一个目录作为配置目录。

vim /usr/local/nginx/conf/nginx.conf

添加一行代码:

include /usr/local/nginx/config/*.conf;

例如:

    include       mime.types;   # 在这句后面添加 include 配置目录
    include /usr/local/nginx/config/*.conf;

别忘了给 /usr/local/nginx/config 目录权限,权限给予的方法上面有了...


创建一个新的配置文件并写入:

vim /usr/local/nginx/config/blog.conf

写入:

server {
    listen       80;
    server_name  bubaijun.test; # 改为你自己的域名

    charset utf-8;

    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;

        root "/home/blog/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:8080;
    }
}

重启 Nginx:

/usr/local/nginx/sbin/nginx -s reload

此时可使用浏览器访问上面设置的域名

1.png

最后如果网页无法打开,应该是防火墙没开放端口。

firewall-cmd --zone=public --add-port=80/tcp --permanent

需要获取网口信息:

ifconfig

还需要把网口设置一下:

firewall-cmd --zone=public --add-interface=enp0s3

enp0s3 为你自己的网口

当然也可以直接把防火墙关了(高危操作 不建议在生产环境这样做):

systemctl stop firewalld.service


注意

部署前需要安装 MySQL 和 Nginx. 如果不会安装可以在博客搜索 MySQL 和 Nginx 有对应的文章。

例如这篇文章:

Centos编译安装Nginx


安装 MySQL 后需要将所需的数据库创建或导入。

例如这篇文章 使用GO语言Beego框架开发一个简易留言板 的 database.sql

导入数据库后还需要修改 conf 目录下的 app.conf 数据库配置。

本文地址 : www.bubaijun.com/page.php?id=222

版权声明 : 未经允许禁止转载!

上一篇文章: Centos编译安装Nginx

下一篇文章: 记-广西贵州自驾游

评论:我要评论
发布评论:
Copyright © 不败君 粤ICP备18102917号-1

不败君

首 页 作 品 微 语