温馨提示×

Golang在CentOS上如何配置Web服务器

小樊
42
2025-11-23 18:45:02
栏目: 云计算

在CentOS上配置Golang Web服务器,你需要遵循以下步骤:

  1. 安装Golang

首先,你需要在CentOS上安装Golang。你可以从官方网站下载适用于Linux的安装包。访问 https://golang.org/dl/ 并下载适合你的系统的安装包。例如,对于64位系统,你可以下载 go1.17.linux-amd64.tar.gz

下载完成后,将安装包移动到 /usr/local 目录并解压缩:

sudo mv go1.17.linux-amd64.tar.gz /usr/local/
sudo tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz

接下来,将Golang添加到环境变量中。编辑 ~/.bashrc~/.bash_profile 文件,添加以下内容:

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

保存文件并运行 source ~/.bashrcsource ~/.bash_profile 使更改生效。

  1. 创建Web服务器

现在你可以使用Golang创建一个简单的Web服务器。在你的工作目录中创建一个名为 main.go 的文件,并添加以下代码:

package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello, Golang Web Server!")
	})

	port := ":8080"
	fmt.Printf("Starting server at port %s\n", port)
	if err := http.ListenAndServe(port, nil); err != nil {
		fmt.Printf("Error starting server: %v\n", err)
	}
}

这段代码创建了一个简单的Web服务器,监听8080端口,并在访问根路径时返回 “Hello, Golang Web Server!”。

  1. 运行Web服务器

在终端中,导航到包含 main.go 文件的目录,然后运行以下命令启动Web服务器:

go run main.go

你应该看到以下输出,表示服务器已成功启动:

Starting server at port :8080
  1. 配置防火墙

默认情况下,CentOS的防火墙可能阻止了8080端口的访问。要允许访问此端口,请运行以下命令:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

现在,你应该能够通过访问 http://your_server_ip:8080 来访问你的Golang Web服务器。

  1. (可选)配置Nginx反向代理

如果你想使用Nginx作为反向代理来处理HTTP请求并将其转发到Golang Web服务器,你可以按照以下步骤操作:

  • 安装Nginx:sudo yum install epel-release && sudo yum install nginx
  • 启动Nginx:sudo systemctl start nginx
  • 配置Nginx:编辑 /etc/nginx/conf.d/default.conf 文件,添加以下内容:
server {
    listen 80;
    server_name your_server_ip;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • 重启Nginx:sudo systemctl restart nginx

现在,你应该能够通过访问 http://your_server_ip 来访问你的Golang Web服务器,并且Nginx将作为反向代理处理请求。

0