在CentOS服务器上部署Go语言环境是一个相对简单的过程。以下是一个详细的指南,帮助你完成这一任务:
1. 安装Go语言环境
下载Go语言包
首先,访问Go官方网站下载适合CentOS的Go语言包。你可以选择最新稳定版本。例如,下载Go 1.18.1版本:
wget https://golang.org/dl/go1.18.1.linux-amd64.tar.gz
解压Go语言包
使用tar
命令将下载的压缩包解压到/usr/local
目录下:
sudo tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz
配置环境变量
为了使Go命令在终端中能够正常运行,需要将Go的可执行文件路径添加到系统环境变量中。编辑/etc/profile
文件,添加以下内容:
sudo vi /etc/profile
在文件末尾添加:
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存并退出编辑器,然后使环境变量配置生效:
source /etc/profile
验证安装
执行以下命令验证Go语言是否成功安装:
go version
如果显示Go的版本信息,说明安装成功。
2. 编写和运行Go程序
编写一个简单的Go程序
创建一个名为hello.go
的文件,并在其中编写以下代码:
package main import "fmt" func main() { fmt.Println("Hello, Go!") }
编译和运行Go程序
使用以下命令编译并运行该程序:
go build hello.go ./hello
如果输出了Hello, Go!
,则说明Go语言环境已经配置完成。
3. 使用Nginx和Supervisor部署Go应用程序(可选)
安装Nginx
Nginx可以作为反向代理服务器,将外部请求转发到Go服务。首先,安装EPEL仓库和Nginx:
sudo yum install -y epel-release sudo yum install -y nginx
启动Nginx服务并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
配置Nginx
编辑Nginx配置文件:
sudo vi /etc/nginx/nginx.conf
在http块中添加新的server块,配置Nginx将请求转发给Go服务。假设Go服务监听在localhost:8080
:
server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
重载Nginx配置:
sudo systemctl reload nginx
编写Go服务
编写一个简单的HTTP服务,监听8080端口:
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello from Go service!") } func main() { http.HandleFunc("/", handler) fmt.Println("Go service is running at http://localhost:8080") http.ListenAndServe(":8080", nil) }
编译Go程序:
go build -o myapp main.go
安装Supervisor
Supervisor是一个进程管理工具,它能确保后台服务在崩溃时自动重启。安装Supervisor:
sudo yum install -y python-pip sudo pip install supervisor
启动Supervisor服务并设置开机自启:
sudo systemctl start supervisord sudo systemctl enable supervisord
配置Supervisor
在/etc/supervisor/conf.d/
目录下创建一个新的配置文件,例如myapp.conf
,内容如下:
[program:myapp] command /path/to/myapp directory /path/to/ autostart true autorestart true stderr_logfile /var/log/myapp.err.log stdout_logfile /var/log/myapp.out.log
更新Supervisor配置并启动Go服务:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start myapp
测试和验证
通过浏览器访问服务,输入配置的域名或IP地址,访问http://example.com
。此时,Nginx将会将请求转发到Go服务,显示Hello from Go service!
。
通过以上步骤,你可以在CentOS系统上顺利部署和配置Go语言环境,并开始进行Go语言的开发工作。如果有任何问题,请参考相关文档或留言反馈。