centos

CentOS上Golang项目如何部署

小樊
52
2025-04-08 14:02:55
栏目: 编程语言

在CentOS上部署Golang项目通常涉及以下几个步骤:

  1. 安装Golang

    首先,确保你的CentOS系统已经安装了Golang。可以通过以下命令检查是否已经安装:

    go version
    

    如果没有安装,可以使用yum进行安装:

    sudo yum install golang
    

    安装完成后,再次运行 go version 命令确认安装成功。

  2. 配置Golang环境变量

    为了使Golang命令在终端中能够正常运行,需要将Golang的可执行文件路径添加到系统环境变量中。可以通过编辑 /etc/profile 文件来配置环境变量:

    sudo vi /etc/profile
    

    在文件末尾添加以下内容:

    export PATH=$PATH:/usr/local/go/bin
    

    保存文件并退出编辑器,然后运行以下命令使环境变量配置生效:

    source /etc/profile
    
  3. 编写Golang应用程序

    在部署Golang应用程序之前,需要先编写一个简单的应用程序进行测试。例如,创建一个名为 main.go 的文件,并编写以下代码:

    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    }
    
    func main() {
        http.HandleFunc("/", helloHandler)
        fmt.Println("Server started on port 8080")
        http.ListenAndServe(":8080", nil)
    }
    
  4. 构建并测试Golang应用程序

    使用 go build 命令对应用程序进行编译:

    go build main.go
    

    该命令会在当前目录下生成一个可执行文件。在测试前,需要先修改防火墙规则,以允许该服务监听8080端口:

    sudo ufw allow 8080/tcp
    

    启动服务进行测试:

    ./myapp
    

    启动成功后即可使用浏览器或者 curl 命令来访问该服务。

  5. 使用systemd管理Golang服务

    为了实现服务的开机自启动,可以使用systemd。首先,在 /etc/systemd/system/ 目录下新建一个名为 myapp.service 的服务文件,填入以下内容:

    [Unit]
    Description=My Go Application
    After=syslog.target
    
    [Service]
    Type=simple
    User=root
    WorkingDirectory=/root/myapp
    ExecStart=/root/myapp
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    其中,myapp.service 为你要注册的服务名字,ExecStart 项填写编译后的可执行文件路径,Restart 为重启选项。

    加载并启动服务:

    sudo systemctl daemon-reload
    sudo systemctl start myapp.service
    sudo systemctl status myapp.service
    

    使用 enable 命令设置开机自启动:

    sudo systemctl enable myapp.service
    
  6. 配置Web服务器(可选):

    如果需要使用Web服务器(如Nginx或Apache)来代理请求到Golang应用程序,可以进行相应的配置。例如,使用Nginx配置如下:

    server {
        listen 80;
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
    }
    

    然后重启Nginx服务:

    sudo systemctl restart nginx
    

通过以上步骤,你可以在CentOS上成功部署Golang项目。如果有更多高级需求,如使用Docker容器化部署,可以参考相关文档进行操作。

0
看了该问题的人还看了