go后端部署服务器方式一:(最简单)
和暑假做重点场所项目部署一样,简单,无脑,手动,麻烦
1、
go env -w GOOS=linux
2、
go build -o main
3、
chmod +x main
nohup ./main -c config.yaml > start.log 2>&1 &
4、
kill -9 "$(pgrep -f main)"
chmod +x main
nohup ./main -c config.yaml > start.log 2>&1 &
echo "OK"
检查
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,之后来补上
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 \
docker build -t centos_go:7.9.2009 .
docker run -it -v /home/project/colorful_moments/:/home/project/colorful_moments --name centos_colorful centos_go:7.9.2009 /bin/bash
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
docker run --name nginx-test -d nginx
mkdir /home/project/nginx
docker cp nginx-test:/etc/nginx/nginx.conf /home/project/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;
}
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
用上git
首先因为新买的服务器之前也没整过公钥密钥,大家看我之前写的整:https://blog.csdn.net/EGXXM/article/details/123494440
1-0看完就可以了
当然更推荐阿里云官方教程(真可谓优雅):https://help.aliyun.com/document_detail/153709.html
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
接着大家直接就可以在这个容器里,git clone git@codeup.aliyun.com…你仓库的ssh地址,拉取代码,之后更新只需要git pull origin dev更新就可以了,这已经属于是git的内容了,大家可以看狂神和网上教git的学习资料学一下,例如我的:https://blog.csdn.net/EGXXM/article/details/123494440
接着,咱们就可以go build main.go啦,然后把start.sh脚本移动过来,运行一下啦
另外补充:
提交centos_go镜像到Dockerhub以及阿里云镜像服务仓库,但是都不太建议,我的centos_go镜像有1.2个G,因为实际测试都贼拉慢,所以你可以找个几百M的镜像发布一下玩玩,学学就可,平时直接用dockerfile构建镜像就行
docker login -u Douckerhub注册的名字
Douckerhub密码
docker tag 5ae0e71be350 jingzhi21/centos_go:7.9.2009
docker push jingzhi21/centos_go:7.9.2009
$ docker login --username=景之爱code registry.cn-shanghai.aliyuncs.com
docker push jingzhi21/centos_go:7.9.2009
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)