go后端部署服务器方式一:(最简单)
和暑假做重点场所项目部署一样,简单,无脑,手动,麻烦
1、# 修改(确保)环境,因为服务器是linux系统
go env -w GOOS=linux
2、# 打包
go build -o main # 或者go build main.go
3、# xftp传main和config.yaml文件到服务器的某个文件夹下去
chmod +x main
nohup ./main -c config.yaml > start.log 2>&1 &
# 到这就可以了
4、# 之后的话可以写个脚本例如:start.sh
kill -9 "$(pgrep -f main)"
chmod +x main
nohup ./main -c config.yaml > start.log 2>&1 &
echo "OK"
# 上边1、2、3步骤还要做,之后只需要运行这个脚本就可以了
检查
ps -ef|grep main 看进程号有,证明启动了
tail -f start.log 看start.log日志的最后几行
go后端部署服务器方式二(docker):
很简单啦
步骤:
1、整一个centos容器
2、整一个mysql容器,有用mysql软件的话,倒也不用这一步
3、整一个nginx容器,有用nginx软件的话,倒也不用这一步,当然了如果你在配置centos容器时候加了-p linux端口:容器端口那就也不需要nginx代理了下面是具体的命令啦,不太适合小白,因为解释偏少,但是都是实践过的,我亲自这样做的,每一个命令我可能敲不知道几十遍了(排除dockerfile这种)
他当然有优势了,那就是简短,欸,给懂的人看,例如我,那真叫一个方便当然还有不足,例如我还没用上git,之后来补上
# dockerfile配置镜像centos_go
# dockerfile内容
FROM centos:7.9.2009
ENV MYPATH /home/project/colorful_moments
WORKDIR $MYPATH
RUN yum -y update \
&& yum -y install vim \
&& yum -y install git \
&& yum install -y gcc-c++ \
&& yum -y install wget \
&& wget -P /home/ https://studygolang.com/dl/golang/go1.18.linux-amd64.tar.gz \
&& tar -zxvf /home/go1.18.linux-amd64.tar.gz -C /usr/local \
&& echo export PATH=$PATH:/usr/local/go/bin >> /etc/profile \
&& source /etc/profile && go version \
&& echo "source /etc/profile" >> /root/.bashrc \
&& go env -w GOPROXY=https://goproxy.cn,direct \
&& go env -w GO111MODULE=on \
# 在/home/project/colorful-moments/server下构建镜像
docker build -t centos_go:7.9.2009 .
# 配置centos_colorful容器
docker run -it -v /home/project/colorful_moments/:/home/project/colorful_moments --name centos_colorful centos_go:7.9.2009 /bin/bash
# 配置mysql_colorful容器
docker run -d -p 3306:3306 -v /home/mysql/datadir:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=xxxxxx --name mysql_colorful mysql:latest
# 配置nginx_colorful容器
docker run --name nginx-test -d nginx # 创建一个容器
mkdir /home/project/nginx # 在我们的project文件夹中创建一个nginx文件夹用来存放nginx方面的内容
docker cp nginx-test:/etc/nginx/nginx.conf /home/project/nginx/ # 从nginx容器中复制出配置文件 (不需要进入到容器中)
docker cp nginx-test:/etc/nginx/conf.d /home/project/nginx/
docker stop nginx-test # 停止容器运行
docker rm nginx-test # 删除测试容器
docker run -it --name nginx_colorful --net host -v /home/project/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/project/nginx/conf.d:/etc/nginx/conf.d -v /home/project/nginx/logs:/var/log/nginx -d nginx
cd /home/project/nginx/conf.d
cp default.conf colorful_moments.conf
vim colorful_moments.conf
更改编辑内容为如下(原来的删掉就行)
nginx到底是干嘛的?意思是:我访问47.113.189.136:80端口跳转到该服务器也还是47.113.189.136的172.18.0.2:8888这个地方访问,这应该就是nginx代理了,它的好处是访问服务端口修改简单,只需要把80改为你想要的就可以,但好处应该不止于此
upstream myserver {
server 172.18.0.2:8888; # 容器ip(cat etc/hosts命令查看):这个服务对应的端口号(config.yaml中看)
}
server {
listen 80;
listen [::]:80;
client_max_body_size 20m;
server_name 47.113.189.136; # 你的服务器地址
location / {
proxy_pass http://myserver; # 后端访问端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
接着
docker restart nginx_colorful