首页 > 系统相关 >CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

时间:2023-07-02 15:24:01浏览次数:52  
标签:web Supervisor CentOS repo app x64 Golang Nginx your

前言

在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务。

1. 安装必要的软件包

安装以下软件包:

  1. Golang:Golang 编程语言
  2. Nginx:Web 服务器
  3. Supervisor:进程管理工具
  4. Git:版本控制工具
  5. EPEL:扩展软件包

可以通过以下命令来安装:

yum -y update
yum install nginx golang epel-release supervisor git -y

2. 生成 SSH 密钥[可选]

为 Git 生成 SSH 密钥,以便于进行代码管理。可以通过以下命令来生成:

cd ~
ssh-keygen -t rsa -C "[email protected]"
cat ~/.ssh/id_rsa.pub

将公钥添加到 Git 仓库中。

3. 下载代码

将代码下载到服务器上,可以使用 Git 命令来下载代码:

cd /
mkdir web
cd web
# or `git clone https://...`
git clone [email protected]:your_name/your_repo.git
cd /web/your_repo

4. 运行应用

在应用根目录下运行以下命令来初始化应用:

go run scripts/init/main.go

5. 编译应用

使用以下命令来编译应用:

GOOS=linux GOARCH=amd64 go build -o dist/app-linux-amd64 cmd/app/main.go

6. 配置 Supervisor

/etc/supervisord.d 目录下创建一个新的配置文件 app.ini,并添加以下内容:

[program:app]
directory=/web/your_repo
command=/web/your_repo/dist/app-linux-amd64 -param1="value1" -param2="value2"
autostart=true
autorestart=true
stderr_logfile=/web/your_repo/log/app.err
stdout_logfile=/web/your_repo/log/app.log
environment=ENV_VAR1="value3",ENV_VAR2="value4"

启动 Supervisor 并检查状态:

systemctl start supervisord
systemctl status supervisord
systemctl enable supervisord
ps -ef|grep supervisord

后续更新重启 app

# Start
supervisorctl start app
# Stop
supervisorctl stop app
# Restart
supervisorctl restart app

7. 配置 Nginx

/etc/nginx 目录下打开 nginx.conf 文件,并修改以下内容:

listen       80;
# listen       [::]:80;
include /etc/nginx/conf.d/*.conf;
# 指向 Golang 的 Nginx Server 配置
include /your_path/your_app.conf;

然后重新启动 Nginx 并检查状态:

systemctl restart nginx
systemctl status nginx

现在,Golang 应用已经成功部署到 CentOS 服务器上了。

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/3696.html

(完)

标签:web,Supervisor,CentOS,repo,app,x64,Golang,Nginx,your
From: https://www.cnblogs.com/mazey/p/17520820.html

相关文章

  • postgres安装记录-centos
    镜像方式安装:1.下载依赖以及脚本[email protected]:a356a/deploy.git2.执行脚本-postgresImage.sh脚本具体执行:关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld拉取镜像并启动镜像dockerpullpostgres:12-alpine3.16dockerrun--namepostgresDocker12......
  • CentOS Linux的最佳替代方案(三)_银河麒麟Kylin Linux Advanced Server V10 SP2 for X86
    CentOSLinux的最佳替代方案(三)_银河麒麟KylinLinuxAdvancedServerV10SP2forX86安装教程1银河麒麟KylinLinuxAdvancedServerV10简介银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩......
  • CentOS安装k8s
    1.系统配置硬件配置基本要求资源大小硬盘>=20Gcpu>=2核内存>=2G本教程配置主机名IP配置master192.168.10.1553核+2G+20Gworker1192.168.10.2343核+2G+20Gworker2192.168.10.1473核+2G+20G2.安装必要软件所有机器都要......
  • centos8.2升级centos stream
    背景2020年12月08日,CentOS官方宣布CentOSLinux项目将停止并推出CentosStream项目。2022后CentOS8的使用者将无法获得包括问题修复和功能更新在内的任何软件维护和支持。升级过程首先,输入如下命令,查看你的yum仓库是否有centos-release-stream[root@gby~]#yumsea......
  • CentOS 7 修改主机名
    缘由主机名与ip域名等映射息息相关,并且也更能体现这一台服务器的作用。对于管理多台服务器来说,主机名就显得比较重要。修改主机名在一台全新的CentOS服务器中,默认的主机名是localhost.localdomain。前面的localhost是主机名,后面的localdomain表示domain(这个不知道是啥的话,百度一下......
  • docker安装记录-centos
    1.下载依赖以及脚本[email protected]:a356a/deploy.git2.执行脚本-dockerInstall.sh脚本具体执行:卸载原有dockeryum-yremove$(yumlistinstalled|grepdocker|awk'{print$1}')安装需要的依赖yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2添加镜像......
  • centos7系统分区方案
    景:windows桌面运维为主的我,前几天接到一个去某客户上架安装服务器的工作任务,含糊的说要上架几台服务器顺便安装Centos系统,于是我便下载了一个Centos7.2版本的镜像,顺利的用USBwriter写入到u盘。带着这个U盘就出发。 虽然有安装经验,但是由于接触不是很多,在熟练度上真不能和大神或在l......
  • CentOS7下swap分区创建(添加),删除以及相关配置
     小叨下背景:笔者的服务器内存只有1g,少得可怜。之前使用apache,不堪忍受其过量的内存消耗,网站卡得想哭,数据库也不断地崩,无奈投入nginx的怀抱并且已经喜欢上了nginx,具体请看上文《CentOS7部署轻量级web服务器nginx+php》。     然而过了几个月后数据库还是继续崩,经查询mysql......
  • centos7安装配置rocketmq
    1、下载地址::https://rocketmq.apache.org/download/ 2、报错:安装rockerMQ报错ERROR:PleasesettheJAVA_HOMEvariableinyourenvironment,Weneedjava(x64)  修改rocketmy的配置文件进入到解压后rocketMQ的bin目录,修改以下三个文件runbroker.sh、runserver.sh、tools.sh修......
  • centos系统防火墙iptables禁止访问某个网站域名
    1.禁止访问百度#iptables-AOUTPUT-ptcp-dwww.baidu.com--dport80-jDROP#iptables-L//生效 2.允许访问百度#iptables-AOUTPUT-ptcp-dwww.baidu.com--dport80-jACCEPT#iptables-L————————————————......