Golang 是一种快速、高效、安全的编程语言,因其优秀的性能特性,越来越多的开发者开始使用它来搭建后端服务。当我们编写完 Golang 代码之后,如何将其部署在生产环境中呢?其中一个不错的选择是使用 Nginx 进行反向代理。

本文将介绍如何使用 Nginx 对 Golang 服务进行反向代理,并在 CentOS 7 系统下进行部署。

1. 安装 Golang

首先,我们需要安装 Golang。在 CentOS 7 系统下,可以通过以下命令进行安装:

yum install -y golang

安装完成之后,可以通过以下命令验证是否成功:

go version

如果输出了 Golang 的版本号,则说明安装成功。

2. 编写 Golang 服务

接下来,我们将编写一个简单的 Golang 服务。在本例中,我们将编写一个能够返回当前时间的 HTTP 服务器,代码如下:

package main

import (
    "fmt"
    "net/http"
    "time"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Current time: %s", time.Now().String())
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
handlerhttp.HandleFunchandler/http.ListenAndServe8080

3. 编译 Golang 服务

go buildPATH/root/go/bin
cd /root/go/src/hello
go build -o /root/go/bin/hello
echo "export PATH=$PATH:/root/go/bin" >> ~/.bashrc
source ~/.bashrc

4. 安装 Nginx

我们使用 Nginx 进行反向代理,因此需要先安装 Nginx。在 CentOS 7 系统下,可以通过以下命令进行安装:

yum install -y nginx

安装完成后,可执行以下命令启动 Nginx:

systemctl start nginx

并使用以下命令将其设置为开机自启动:

systemctl enable nginx

5. 配置 Nginx 反向代理

/etc/nginx/conf.dhello.conf
server {
    listen 80;
    server_name example.com;
 
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}
80127.0.0.1:8080proxy_set_headerHost

配置文件编写完成后,执行以下命令检查 Nginx 配置是否正确:

nginx -t

如果提示配置正确,则执行以下命令重启 Nginx:

systemctl restart nginx

6. 测试 Golang 服务

8080

本文介绍了如何使用 Nginx 对 Golang 服务进行反向代理,并在 CentOS 7 系统下进行部署。当然,如果你需要在其他系统下进行部署,也可以按照本文中的思路进行操作。