在CentOS上部署Golang项目通常涉及以下几个步骤:
安装Golang:
首先,确保你的CentOS系统已经安装了Golang。可以通过以下命令检查是否已经安装:
go version
如果没有安装,可以使用yum进行安装:
sudo yum install golang
安装完成后,再次运行 go version
命令确认安装成功。
配置Golang环境变量:
为了使Golang命令在终端中能够正常运行,需要将Golang的可执行文件路径添加到系统环境变量中。可以通过编辑 /etc/profile
文件来配置环境变量:
sudo vi /etc/profile
在文件末尾添加以下内容:
export PATH=$PATH:/usr/local/go/bin
保存文件并退出编辑器,然后运行以下命令使环境变量配置生效:
source /etc/profile
编写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)
}
构建并测试Golang应用程序:
使用 go build
命令对应用程序进行编译:
go build main.go
该命令会在当前目录下生成一个可执行文件。在测试前,需要先修改防火墙规则,以允许该服务监听8080端口:
sudo ufw allow 8080/tcp
启动服务进行测试:
./myapp
启动成功后即可使用浏览器或者 curl
命令来访问该服务。
使用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
配置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容器化部署,可以参考相关文档进行操作。