13703353520(同微信) 周一~周五, 8:00 - 20:00
QQ:25681881或25295110 邮箱:qhdzxz@163.com
易得优软件 河北•秦皇岛
  • 站群系统

    自主建站,易得优自主建站站群系统

  • 易得优餐饮库管系统

    十七年专注开发

  • 易得优智能工控

    智能工控,易得优是认真的

  • 音乐打铃播放无需电脑

    易得优音乐打铃系统无电脑版

Let s GO

    时间:2018-12-28 15:04:13     人气:2055


本文刊发于《网络安全和信息化》2019年第1期----CentOs中GO的安装与网站部署

         Go语言是谷歌2009年发布的第二款开源编程语言,如今Go语言作为专门为并发和大数据设计的语言,在编程界占据越来越重要的地位。

Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个Web服务,同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。在CentOs环境下,Go的安装与网站的部署也是非常方便的。

一、在CentOs服务器系统中安装LNMP。

在安装前先在终端执行命令:

# screen -S lnmp

如果提示找不到命令就yum安装 screen:

# yum install screen

然后就可以安装LNMP了:

# cd /usr/local/src

# wget -c http://soft.vpser.net/lnmp/lnmp1.5beta.tar.gz && tar zxf lnmp1.5beta.tar.gz && cd lnmp1.5 && ./install.sh lnmp

这个安装过程虽然时间很长,但按照一步一步的提示完全可以轻松完成。

二、安装GO。

从https://studygolang.com/dl 处下载go1.11.linux-amd64.tar.gz 并上传到/usr/local/scr/目录中。

# cd /usr/local/src

# tar zxvf go1.11.linux-amd64.tar.gz

# cd /usr/local/src/go/

# vi /root/.bashrc  #在这个文件中加入以下语句

#go

export GOROOT=/usr/local/src/go

export GOPATH=/data/httpd/go

export PATH=$PATH:$GOROOT/bin

重启系统或者执行source /root/.bashrc

就可以用go env查看相关配置来验证是否安装成功。

三、Nginx中建立站点并设置反向代理。

在Nginx中建立一个go.qhdedu.com站点,在其对应的go.qhdedu.com.conf配置文件中,要有以下设置:

listen 80;  #侦听80端口

…………

location / {

    proxy_pass   http://127.0.0.1:9090; #反向代理

    }

…………

四、在站点文件夹中建立如下五个文件。

header.html, main.html, about.html, new.html及main.go。

# cd  /home/wwwroot/go.qhdedu.com

# vi header.html

输入以下内容:

{{ define "header" }}

   

   

   

       

       

       

   

   

    本站首页  

    测试页面  

    关于本站

{{ end }}

# vi main.html

输入以下内容:

{{define "main"}}

    {{template "header" .}}

   

       

首页面

       

这是首页面内容

   

 {{end}}

# vi about.html

输入以下内容:

{{define "about"}}

    {{template "header" .}}

   

       

关于

       

关于页内容

   

{{end}}

# vi new.html

输入以下内容:

{{define "new"}}

    {{template "header" .}}

   

       

测试页面

       

新测试页面内容

   

{{end}}

# vi main.go

输入以下内容:

package main

import (

       "net/http"

       "html/template"

       "log"

)

//Compile templates on start

var templates=template.Must(template.ParseFiles("main.html","header.html", "about.html", "new.html"))

//A Page structure

type Page struct {

       Title string

}

//Display the named template

func display(w http.ResponseWriter, tmpl string, data interface{}) {

       templates.ExecuteTemplate(w, tmpl, data)

}

//The handlers.

func mainHandler(w http.ResponseWriter, r *http.Request) {

       display(w, "main", &Page{Title: "Home主页"})

}

func aboutHandler(w http.ResponseWriter, r *http.Request) {

       display(w, "about", &Page{Title: "关于本站"})

}

func newHandler(w http.ResponseWriter, r *http.Request) {

       display(w, "new", &Page{Title: "测试页面"})

}

func main() {

       http.HandleFunc("/", mainHandler)

       http.HandleFunc("/new", newHandler)

       http.HandleFunc("/about", aboutHandler)

       err := http.ListenAndServe(":9090", nil) //设置监听的端口

       if err != nil {

              log.Fatal("ListenAndServe: ", err)

       }

}

五、编译main.go。

# cd  /home/wwwroot/go.qhdedu.com

# go build main.go

六、建立脚本文件。

# cd  /etc/init.d/

# vi   go.sh

输入以下内容:

#!/bin/sh

#下面是要启动服务的命令

cd  /home/wwwroot/go.qhdedu.com

./main  &    #运行上一步编译生成的main文件

然后再把此脚本设置成系统服务。

# chmod +x go.sh

# chkconfig --add go.sh

重新启动系统后,就可以用http://go.qhdedu.com:9090 来访问这个网站了,当然因为Nginx侦听80端口并做了反向代理,因此用http://go.qhdedu.com也可以直接访问。

 

 20181227050510335.jpg

 

 

赵学作,河北科技师范学院副教授,研究方向:网站建设及软件开发。