ubuntu用go语言搭建简单的web服务器

最近用ios开发一个简单的app,先写一个简单的接口,简单人做简单事。之前看过java,被各种框架绕得不行,后来看到go语言,正如谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。非常简单,好了不废话了。整理下这2天的内容。
服务器是用阿里云的ubuntu操作系统。
先安装go语言开发环境,远程登录,输入命令行:

sudo apt-get install golang-go

安装好后,配置下go的环境变量。环境变量可以让你在不指定目录的情况下,编译,运行各项目。非常方便~
编译~/.bashrc 文件

vi ~/.bashrc

然后按 i 插入,滚动到最后一行,添加如下代码

export GOPATH=$HOME/home/go_app
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

添加后如下图:


bashrc配置文件

按esc键盘,输入:wq 保存并且退出。
说明下,$HOME 是当前的用户目录,我用登录的时候是在root目录下,后面的home/go_app是我自己建的,随便取的名字~
让配置直接生效,命令行输入

source ./bashrc

查看设置好没,命令行输入

go env

看到如下


配置环境变量图

看到刚才配置的2个都在上面了。
然后接下来我们来创建我们自己的项目,go语言的工作环境配置如下

root@huangjianyu:~/home# tree
.
`-- go_app
    |-- bin //可执行文件目录
    |   `-- TQBProject
    `-- src //模块,项目目录
        |-- testproject
        |   `-- hello.go
        `-- TQBProject
            `-- helloserver.go

这次我是建了一个TQBProject的项目,为啥叫这个名称,我喜欢~
在上面的环境变量下,我们自己建src跟bin目录,然后在src下建立我们自己的项目名称TQBProject

cd .../go_app/src
mkdir TQBProject
cd TQBProject

然后开始建立我们的第一个go文件

vi helloserver.go

内容如下

package main

import (
   "fmt"
   "net/http"
   "strings"
   "log"
)

func sayhelloName(w http.ResponseWriter, r *http.Request) {
   r.ParseForm() //解析参数,默认是不会解析的
   fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
   fmt.Println("path", r.URL.Path) //打印地址
   fmt.Println("scheme", r.URL.Scheme)
   fmt.Println(r.Form["url_long"])
   for k, v := range r.Form { //遍历所有参数
       fmt.Println("key:", k)
       fmt.Println("val:", strings.Join(v, ""))
   }
   fmt.Fprintf(w, "我是黄煎鱼~~~~!") //这个写入到w的是输出到客户端的
}


func main() {
   dbTest()
   http.HandleFunc("/", sayhelloName) //设置访问的路由
// http.HandleFunc("/other", otherUrl) //设置访问的路由
   err := http.ListenAndServe(":8090", nil) //设置监听的端口
   if err != nil {
       log.Fatal("ListenAndServe: ", err)
   }
   
}

是不是非常简单?之后就开始编译了。
1.cd到项目指定的目录,然后执行go build
2.也可以在任意目录执行go build 【项目模块名】

go build TQBProject
//执行
./TQBProject

然后在浏览器访问


image.png

嗯大功告成~后面我们将会在supervisor来托管我们的进程。

参考1
https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04
参考2
https://waylau.com/linux-ubuntu-golang-under-environment-variables/
参考3
https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/go-build-vs-go-install.html
参考4
https://www.kancloud.cn/kancloud/web-application-with-golang/44128

你可能感兴趣的:(ubuntu用go语言搭建简单的web服务器)