117.info
人生若只如初见

CentOS服务器Go语言部署指南

在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语言的开发工作。如果有任何问题,请参考相关文档或留言反馈。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fed08AzsKCQVeAVM.html

推荐文章

  • centos jenkins插件推荐

    在CentOS上安装Jenkins后,可以根据项目需求安装不同的插件来扩展其功能。以下是一些常用的Jenkins插件及其用途: Git Plugin:用于与Git仓库集成,支持代码拉取...

  • centos message服务如何启动与停止

    在CentOS系统中,message服务可能指的是syslog-ng服务,它用于处理系统日志消息。以下是如何启动和停止syslog-ng服务的步骤:
    启动syslog-ng服务 使用syste...

  • centos如何配置minio安装

    在CentOS上配置和安装MinIO的步骤如下:
    1. 安装依赖包
    首先,确保你的CentOS系统是最新的,并且安装了必要的依赖包。
    sudo yum update -y
    ...

  • 如何通过CentOS Sniffer优化网络性能

    Sniffer 是一款网络协议分析软件,通常用于网络故障排查、性能分析和安全监控。然而,直接通过 Sniffer 来“优化”网络性能并不是一个常见的做法,因为 Sniffer ...

  • 如何用copirdir筛选特定文件

    cp 命令用于复制文件和目录,而不是筛选文件。如果你想要筛选特定文件并复制它们,你可以结合使用 find 或 ls 命令与 cp 命令。
    以下是一些示例: 使用 fin...

  • Linux文件管理:如何复制粘贴文件

    在Linux中,复制和粘贴文件可以通过命令行界面(CLI)或图形用户界面(GUI)来完成。以下是两种方法的详细步骤:
    通过命令行界面(CLI) 打开终端: 在大多...

  • phpstorm在centos上如何配置xdebug

    在CentOS上为PHPStorm配置Xdebug,可以按照以下步骤进行:
    1. 安装Xdebug
    首先,确保你的CentOS系统已经安装了PHP和PHP开发工具。然后,使用以下命令安...

  • HDFS性能调优有哪些方法

    HDFS(Hadoop Distributed File System)的性能调优可以从多个方面进行,以下是一些常见的方法:
    1. 硬件优化 增加节点:增加集群中的节点数量可以提高并行...