当前位置:首页 » 云服务器 » goweb如何部署服务器

goweb如何部署服务器

发布时间: 2022-09-14 04:06:59

㈠ 想写个web服务器,用Go语言实现,需要有哪些前提知识

Web服务器也是一个应用程序,这个应用程序打开了TCP的80端口,通过HTTP协议和浏览器交互。 python和Go有非常成熟的类库,可以用很短的程序来实现一个Web服务器的功能(打开80端口通过HTTP协议与浏览器交互)。

㈡ 如何使用Docker部署Go Web应用程序

需要在当前目录下建立如下三个文件。

1).gitignore

node_moles/*
2)package.json

{
"name": "docker-centos-hello",
"private": true,
"version": "0.0.1",
"description": "Node.js Hello world app on CentOS using docker",
"author": "Daniel Gasienica ",
"dependencies": {
"express": "3.2.4"
}
}
3)server.js

var express = require('express'),
app = express(),
redis = require('redis'),
RedisStore = require('connect-redis')(express),
server = require('http').createServer(app);

app.configure(function() {
app.use(express.cookieParser('keyboard-cat'));
app.use(express.session({
store: new RedisStore({
host: process.env.REDIS_HOST || 'localhost',
port: process.env.REDIS_PORT || 6379,
db: process.env.REDIS_DB || 0
}),
cookie: {
expires: false,
maxAge: 30 * 24 * 60 * 60 * 1000
}
}));
});

app.get('/', function(req, res) {
res.json({
status: "ok"
});
});

var port = process.env.HTTP_PORT || 3000;
server.listen(port);
console.log('Listening on port ' + port);
配置Dockerfile

我们需要通过Dockerfile来配置我们的docker镜像。

FROM ubuntu:14.04
MAINTAINER zengjinlong

RUN apt-get update

#Install Redis
RUN apt-get -y -qq install python redis-server

RUN apt-get -y -qq install wget

#Install Node
RUN cd /opt && \
wget && \
tar -xzf node-v0.10.33-linux-x64.tar.gz && \
mv node-v0.10.33-linux-x64 node && \
cd /usr/local/bin && \
ln -s /opt/node/bin/* . && \
rm -f /opt/node-v0.10.33-linux-x64.tar.gz

#Set the working directory
WORKDIR /src
j
CMD ["/bin/bash"]
有了Dockerfile之后,就可以通过docker build来建立我们的镜像。

docker build -t minimicall/node_web:0.1 .
这里需要说明的是,你需要灵活的根据你的ubuntu真实的环境来变化中间的指令。例如,当我们第一次执行的时候,告诉我找不到python redis-server,我想应该是我的apt 源太out了,所以,我加了RUN apt-get update.就解决了这个问题。

当我wget的时候,说没有这个指令,那么我就得安装wget.而nodejs的地址,也是我去从nodejs的官网查找的。所以碰到问题,具体问题具体分析。

查看我们建立的镜像。

micall@micall-ThinkPad:~/docker/nodejs_web_app$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
minimicall/node_web 0.1 730770dff17f 6 minutes ago 268.7 MB
centos centos6 70441cac1ed5 2 weeks ago 215.8 MB
ubuntu 14.04 5506de2b643b 4 weeks ago 199.3 MB
启动我们的镜像:

sudo docker run -i -t --rm \
> -p 3000:3000 \
> -v `pwd`:/src \
> minimicall/node_web:0.1
这时候我们已经进入到了这个镜像启动的容器里面了。

root@d80a2ed6b4c0:/src#
执行下列命令

root@d80a2ed6b4c0:/src# npm install --quiet > /dev/null
npm WARN engine [email protected]: wanted: {"node":"<0.9.0"} (current: {"node":"0.10.33","npm":"1.4.28"})
root@d80a2ed6b4c0:/src# npm install -g nodemon --quiet > /dev/null
root@d80a2ed6b4c0:/src# ls
Dockerfile Dockerfile~ index.js~ package.json server.js src
Dockerfile.centos index.js node_moles package.json~ server.js~
root@d80a2ed6b4c0:/src# nodemon server.js
22 Nov 14:37:31 - [nodemon] v1.2.1
22 Nov 14:37:31 - [nodemon] to restart at any time, enter `rs`
22 Nov 14:37:31 - [nodemon] watching: *.*
22 Nov 14:37:31 - [nodemon] starting `node server.js`
Listening on port 3000
这个时候用浏览器打开:,会的到如下结果。

{
"status": "ok"
}

㈢ 如何使用Docker部署Go Web应用程序

步骤一 - 创建Dockerfile

如下的Dockerfile可以满足以上的要求:
**FROM** golang:1.6

*# Install beego and the bee dev tool*

**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee

*# Expose the application on port 8080*

**EXPOSE** 8080

*# Set the entry point of the container to the bee command that runs the*

*# application and watches for changes*

**CMD** ["bee", "run"]

第一行,
FROM golang:1.6

将Go的官方映像文件作为基础映像。该映像文件预安装了 Go 1.6 . 该映像已经把 $GOPATH 的值设置到了 /go 。所有安装在 /go/src 中的包将能够被go命令访问

第二行,
RUN go get github.com/astaxie/beego && go get github.com/beego/bee

安装 beego 包和 bee 工具。 beego 包将在应用程序中使用。 bee 工具用语在开发中再现地重新加载咱们的代码。

第三行,
EXPOSE 8080

在开发主机上利用容器为应用程序开放8080端口。

最后一行,
CMD ["bee", "run"]

使用bee命令启动应用程序的在线重新加载。

步骤二 - 构建image

一旦创建了Docker file,运行如下的命令来创建image:
docker build -t ma-image .

执行以上的命令将创建名为ma-image的image。该image现在可以用于使用该应用程序的任何人。这将确保这个团队能够使用一个统一的开发环境。

为了查看自己的系统上的image列表,运行如下的命令:
docker images

这行该命令将输出与以下类似的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE

ma-image latest 8d53aa0dd0cb 31 seconds ago 784.7 MB

golang 1.6 22a6ecf1f7cc 5 days ago 743.9 MB

注意image的确切名字和编号可能不同,但是,应该至少看到列表中有 golang 和 ma-image image。

步骤三 - 运行容器

一旦 ma-image 已经完成,可以使用以下的命令启动一个容器:
docker run -it --rm --name ma-instance -p 8080:8080 \

-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image

让咱们分析一下上面的命令来看看它做了什么。

。docker run命令用于从一个image上启动一个容器

。-it 标签以交互的方式启动容器

。--rm 标签在容器关闭后将会将其清除

。--name ma-instance 将容器命名为ma-instance

。-p 8080:8080 标签允许通过8080端口访问该容器

。-v /app/MathApp:/go/src/MathApp更复杂一些。它将主机的/app/MathApp映射到容器中的/go/src/MathApp。这将使得开发文件在容器的内部和外部都可以访问。

。ma-image 部分声明了用于容器的image。

执行以上的命令将启动Docker容器。该容器为自己的应用程序开发了8080端口。无论何时做了变更,它都将自动地重构自己的应用程序。自己将在console(控制台)上看到以下的输出:
bee :1.4.1

beego :1.6.1

Go :go version go1.6 linux/amd64

2016/04/10 13:04:15 [INFO] Uses 'MathApp' as 'appname'

2016/04/10 13:04:15 [INFO] Initializing watcher...

2016/04/10 13:04:15 [TRAC] Directory(/go/src/MathApp)

2016/04/10 13:04:15 [INFO] Start building...

2016/04/10 13:04:18 [SUCC] Build was successful

2016/04/10 13:04:18 [INFO] Restarting MathApp ...

2016/04/10 13:04:18 [INFO] ./MathApp is running...

2016/04/10 13:04:18 [asm_amd64.s:1998][I] http server Running on :8080

㈣ 如何在树莓派上安装一个简单的Go Web服务器

工具/原料

树莓派
nat123
LAMP
方法/步骤

在树莓派上安装linux系统,到官网下载系统压缩包,推荐使用raspbian。

如果在windows下安装,需要下载win32diskimager,解压系统,将解压出来的系统映像写到内存卡(内存卡最好大点,推荐8G以上的内存卡)。
如果在Linux系统下安装,先输入命令:sudo fdisk -l
查询内存卡的分区,一般是/dev/sdb。
把系统映像解压到家目录下/home/***,输入命令:
sudo dd bs=1M if=~/2016-02-26-raspbian-jessie-lite.img of=/dev/sdb
这步按你自己的实际情况操作。
看到以下输出就成功写入了。

把内存卡装入树莓派,开机启动,第一次会需要配置系统,可以按默认设置直接启动进入系统。
安装Apache。apache服务器一般在linux软件源列表有,可以用apt安装。
在安装可以先更新一下apt的软件列表,以确定安装的软件是最新。
输入命令:sudo apt-get update
更新完毕可以正式安装apache了。
输入命令:sudo apt-get install apache2

安装mysql。这个也是软件列表中的软件,所以直接用apt安装。因为我们是使用服务器端应用,输入以下命令安装:
sudo apt-get install mysql-server

安装php
输入命令:sudo apt-get install php5
php还需要对数据库进行操作,所以还需要安装php5-mysql
输入命令:sudo apt-get install php5-mysql

8
注册一个域名,用nat123将你的域名与你的IP进行域名解析。若是内网则还需要内网映射。
9
在浏览器输入打开你的网址,网页正常显示服务器就搭建成功了。

㈤ 如何使用Docker部署一个Go Web应用程序

本文的目标是建立一个Docker web app。这样,你就可以直观的感受,docker是如何部署一个web应用。 首先,我们建立一个空目录来存放我们需要的文件。 我们建立的是一个node.js的web服务应用。、

㈥ 如何使用Docker部署一个Go Web应用程序

步骤一 - 创建Dockerfile

如下的Dockerfile可以满足以上的要求:
**FROM** golang:1.6

*# Install beego and the bee dev tool*

**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee

*# Expose the application on port 8080*

**EXPOSE** 8080

*# Set the entry point of the container to the bee command that runs the*

*# application and watches for changes*

**CMD** ["bee", "run"]

第一行,
FROM golang:1.6

将Go的官方映像文件作为基础映像。该映像文件预安装了 Go 1.6 . 该映像已经把 $GOPATH 的值设置到了 /go 。所有安装在 /go/src 中的包将能够被go命令访问。

第二行,
RUN go get github.com/astaxie/beego && go get github.com/beego/bee

安装 beego 包和 bee 工具。 beego 包将在应用程序中使用。 bee 工具用语在开发中再现地重新加载我们的代码。

第三行,
EXPOSE 8080

在开发主机上利用容器为应用程序开放8080端口。

最后一行,
CMD ["bee", "run"]

使用bee命令启动应用程序的在线重新加载。

步骤二 - 构建image

一旦创建了Docker file,运行如下的命令来创建image:
docker build -t ma-image .

执行以上的命令将创建名为ma-image的image。该image现在可以用于使用该应用程序的任何人。这将确保这个团队能够使用一个统一的开发环境。

为了查看你的系统上的image列表,运行如下的命令:
docker images

这行该命令将输出与以下类似的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE

ma-image latest 8d53aa0dd0cb 31 seconds ago 784.7 MB

golang 1.6 22a6ecf1f7cc 5 days ago 743.9 MB

注意image的确切名字和编号可能不同,但是,你应该至少看到列表中有 golang 和 ma-image image。

步骤三 - 运行容器

一旦 ma-image 已经完成,你可以使用以下的命令启动一个容器:
docker run -it --rm --name ma-instance -p 8080:8080 \

-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image

让我们分析一下上面的命令来看看它做了什么。

。docker run命令用于从一个image上启动一个容器

。-it 标签以交互的方式启动容器

。--rm 标签在容器关闭后将会将其清除

。--name ma-instance 将容器命名为ma-instance

。-p 8080:8080 标签允许通过8080端口访问该容器

。-v /app/MathApp:/go/src/MathApp更复杂一些。它将主机的/app/MathApp映射到容器中的/go/src/MathApp。这将使得开发文件在容器的内部和外部都可以访问。

。ma-image 部分声明了用于容器的image。

执行以上的命令将启动Docker容器。该容器为你的应用程序开发了8080端口。无论何时你做了变更,它都将自动地重构你的应用程序。你将在console(控制台)上看到以下的输出:
bee :1.4.1

beego :1.6.1

Go :go version go1.6 linux/amd64

2016/04/10 13:04:15 [INFO] Uses 'MathApp' as 'appname'

2016/04/10 13:04:15 [INFO] Initializing watcher...

2016/04/10 13:04:15 [TRAC] Directory(/go/src/MathApp)

2016/04/10 13:04:15 [INFO] Start building...

2016/04/10 13:04:18 [SUCC] Build was successful

2016/04/10 13:04:18 [INFO] Restarting MathApp ...

2016/04/10 13:04:18 [INFO] ./MathApp is running...

2016/04/10 13:04:18 [asm_amd64.s:1998][I] http server Running on :8080

㈦ 如何使用Docker部署一个Go Web应用程序

步骤一 - 创建Dockerfile
如下的Dockerfile可以满足以上的要求:
**FROM** golang:1.6
*# Install beego and the bee dev tool*
**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee
*# Expose the application on port 8080*
**EXPOSE** 8080
*# Set the entry point of the container to the bee command that runs the*
*# application and watches for changes*
**CMD** ["bee", "run"]
第一行,
FROM golang:1.6
将Go的官方映像文件作为基础映像。该映像文件预安装了 Go 1.6 . 该映像已经把 $GOPATH 的值设置到了 /go 。所有安装在 /go/src 中的包将能够被go命令访问。
第二行,
RUN go get github.com/astaxie/beego && go get github.com/beego/bee
安装 beego 包和 bee 工具。 beego 包将在应用程序中使用。 bee 工具用语在开发中再现地重新加载我们的代码。
第三行,
EXPOSE 8080
在开发主机上利用容器为应用程序开放8080端口。
最后一行,
CMD ["bee", "run"]
使用bee命令启动应用程序的在线重新加载。
步骤二 - 构建image
一旦创建了Docker file,运行如下的命令来创建image:
docker build -t ma-image .
执行以上的命令将创建名为ma-image的image。该image现在可以用于使用该应用程序的任何人。这将确保这个团队能够使用一个统一的开发环境。
为了查看系统上的image列表,运行如下的命令:
docker images
这行该命令将输出与以下类似的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
ma-image latest 8d53aa0dd0cb 31 seconds ago 784.7 MB
golang 1.6 22a6ecf1f7cc 5 days ago 743.9 MB
注意image的确切名字和编号可能不同,但是,应该至少看到列表中有 golang 和 ma-image image。
步骤三 - 运行容器
一旦 ma-image 已经完成,可以使用以下的命令启动一个容器:
docker run -it --rm --name ma-instance -p 8080:8080 \
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image

㈧ 如何使用Docker部署一个Go Web应用程序

本文的目标是建立一个Docker web app。这样,你就可以直观的感受,docker是如何部署一个web应用。首先,我们建立一个空目录来存放我们需要的文件。我们建立的是一个node.js的web服务应用。、

热点内容
pb级kv存储 发布:2024-05-18 01:47:30 浏览:820
免费加密狗 发布:2024-05-18 01:47:16 浏览:282
安卓手机如何把视频变成实况 发布:2024-05-18 00:57:35 浏览:799
如何禁止缓存后台进程 发布:2024-05-18 00:57:12 浏览:171
c语言中安 发布:2024-05-18 00:39:59 浏览:450
数据库建设书 发布:2024-05-18 00:39:17 浏览:826
破解压缩包解压密码 发布:2024-05-18 00:34:57 浏览:840
网页java代码在线编译 发布:2024-05-18 00:29:49 浏览:925
路由器编程器固件 发布:2024-05-18 00:13:41 浏览:255
家庭千兆搭建服务器 发布:2024-05-18 00:11:39 浏览:609