下面总结学习 go 时,使用最简单的方式在 Linux 中部署 go web 应用,部署后可通过 Windows 环境访问运行在 Linux 环境中的 go web 应用。
整个过程是使用 FinalShell 终端工具与 Linux 环境进行交互,所以对 Linux 的输入及配置等操作均在 Windows 环境下借助 FinalShell 实现。
如果Linux 环境未安装 Go 先看这个【Linux — 安装 Go】Linux 系统安装 Go 过程总结-CSDN博客
1.创建 go 文件
在Linux 系统中的 usr 目录下新建项目文件夹 test ,新建文件夹后,进入 test 开始测试。
①输入命令【vim hello.go】新建以 hello 命名的 go 文件
②输入命令【i】进入vim的插入模式
③输入代码
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", hello)
server := &http.Server{
Addr: "0.0.0.0:8000",
}
fmt.Println("server startup...")
if err := server.ListenAndServe(); err != nil {
fmt.Printf("server startup failed,err:%v \n", err)
}
}
func hello(w http.ResponseWriter, _ *http.Request) {
w.Write([]byte("hello huangpengju.com!"))
}
④按下【Esc】后输入【:wq】命令,保存并退出
⑤输入【ls】命令可查看 test 目录下已经新建了 go 文件
2.编译 go 文件
①输入命令【go build hello.go】
②输入【ls】命令可查看 test 目录已经有了编译好的可执行程序 hello
3.运行 go-web 应用
①输入【./hello】命令运行上一步编译产生的可执行程序 hello
②可执行程序运行时,会在终端看到该程序返回的字符 server startup...
4.访问 go-web 应用
访问 go-web 应用的前提条件是 hello 可执行程序一直处在运行状态
4.1在 Linux 环境中访问 go-web 应用
方式①打开新的终端,在终端输入【curl + IP:端口】,IP 可以是 0.0.0.0,端口是在代码中已经设定好的。
绿色方框是 go web 应用的响应。
方式②打开新的终端,在终端输入【curl + IP:端口】,IP 可以是 Linux 已配置的 IP(可使用【ip addr show】命令查看IP)
这里看到的 curl 192.168.240.240:8000 后面的 / 可有可无,不影响结果。
4.2在 Windows 环境中访问 go-web 应用
①先检查 Linux 环境的防火墙状态,输入命令【systemctl status firewalld】
②在 Windows 环境中的浏览器地址栏输入【Linux系统IP:端口】
此时访问不到 go web 应用的原因可能是 Linux 环境中的防火墙阻止了 Windows 环境中浏览器的请求。
③暂时关闭 Linux 防火墙,在终端输入【systemctl stop firewalld】
④重复②的操作,在 Windows 环境中的浏览器地址栏输入【Linux系统IP:端口】
浏览器有响应,说明可以正常访问 go web 应用。
上述这一过程相当于使用最简单的方式在 Linux 环境部署了一个简单的 go web 项目。
当然也可以把 go 文件的创建和编译的过程放在 Windows 环境中进行,编译时记得进行相关配置,最后把编译好的可执行程序拷贝到 Linux 环境后运行即可。