如何在 CentOS 7 中部署示例一个 GO 的应用程序

Go 语言

Go 是由 Robert Griesemer、Rob Pike 和 Ken Thompson 在谷歌设计的静态类型、编译的编程语言。Go 在语法上与C 相似,但是具有内存安全性、垃圾收集、结构类型和 csp 样式的并发性。Golang 最大的优势之一是它提供了其他语言所不具备的清晰性和易用性。Golang 的优势使得新程序员可以轻松地快速理解该语言,而经验丰富的老手也可以轻松地阅读彼此的代码。

表的内容

  1. 安装 GO
  2. 创建一个示例 Go 项目
  3. 创建 Systemd 服务
  4. 设置 Nginx 反向代理服务器

第一步: 安装 GO

要下载 Go 二进制文件,可以使用 wget 或 curl :

wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz

接下来使用 tar 提取文件。

tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

接下来调整 Path 变量。

vi  ~/.bash_profile

添加这行.

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

保存文件,并使用以下命令将新的 PATH 环境变量加载到当前 shell 会话中。

source ~/.bash_profile

第二步: 创建一个示例 Go 项目

创建工作区目录。

mkdir ~/go

创建一个简单的 “Hello World” Go 文件。

mkdir -p ~/go/src/hello

在这个目录中创建一个名为 hello 的文件。在 hello.go 中添加以下几行。

package main

import (
    "fmt"
    "net/http"
)

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

    http.HandleFunc("/greet/", func(w http.ResponseWriter, r *http.Request) {
        name := r.URL.Path[len("/greet/"):]
        fmt.Fprintf(w, "Hello %s\n", name)
    })

    http.ListenAndServe(":9990", nil)
}

我们需要在防火墙中添加服务 http、https 和端口号 你好.GO 9990 / tcp

firewall-cmd --permanent --zone=public  --add-service=http
firewall-cmd --permanent --zone=public  --add-service=https
firewall-cmd --permanent --zone=public  --add-port=9990/tcp

然后按照此命令重新加载防火墙

firewall-cmd --reload

接下来,

构建 hello.go

cd ~/go/src/hello
go build

通过建入来运行可执行文件。

./hello

Output :

Hello World

第三步: 创建 Systemd 服务

创建扩展名为单元的文件。在 /etc/system /system 目录中 服务。

vi  /etc/systemd/system/hello.service
[Unit]
Description=sample app
After=multi-user.target

[Service]
User=root
Group=root
ExecStart=/root/go/src/hello/hello

[Install]
WantedBy=multi-user.target

现在,我们可以通过运行启动脚本。

 systemctl start hello.service  
 systemctl enable hello.service

第四步: 设置 Nginx 反向代理服务器

使用命令安装 Nginx。

yum install nginx -y

启动和启用 Nginx 服务

systemctl start nginx
systemctl enable nginx

检查 Nginx 的状态

systemctl status nginx

创建目录 /etc/nginx/sites-available,并添加文件名 hello。

vi  /etc/nginx/sites-available/hello
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location /root/go/src/hello/hello {
        proxy_pass http://localhost:9990;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

我们需要为 conf 文件创建一个指向支持 站点的 目录的符号链接。

ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled

我们可以重启 Nginx 进程来读取我们最新的配置。

systemctl restart nginx

用这个端口号搜索你的ip : http://your_ip_:9990

结论

我们希望本文帮助您学习如何在 VPS 服务器上部署 Go 应用程序。戈朗,是谷歌的快速和卓越的创想,将造福于各行各业的企业。切换到 Golang 可能是决定您在不久的将来制定软件战略和交付的决定性因素。为栈是一个最好的虚拟主机提供商,提供高端共享虚拟主机 (https://thestack.net/shared-hosting),便宜的专用服务器托管 (https://thestack.net/dedicated-servers),托管 VPS 服务器 (https://thestack.net/vps), WordPress 托管和服务器管理 (https://thestack.net/server-management)。放心我们的服务,并接触我们的专家团队了解更多。

关联文章