CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务
前言
在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务。
1. 安装必要的软件包
安装以下软件包:
- Golang:Golang 编程语言
- Nginx:Web 服务器
- Supervisor:进程管理工具
- Git:版本控制工具
- EPEL:扩展软件包
可以通过以下命令来安装:
yum -y update
yum install nginx golang epel-release supervisor git -y
2. 生成 SSH 密钥[可选]
为 Git 生成 SSH 密钥,以便于进行代码管理。可以通过以下命令来生成:
cd ~
ssh-keygen -t rsa -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub
将公钥添加到 Git 仓库中。
3. 下载代码
将代码下载到服务器上,可以使用 Git 命令来下载代码:
cd /
mkdir web
cd web
# or `git clone https://...`
git clone git@github.com: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
(完)
CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务的更多相关文章
- Linux+Nginx+Supervisor部署ASP.NET Core实操手册
一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...
- CentOS+Nginx+Supervisor部署ASP.NET Core项目
对.Net Core的学习和实践,已经进行了一年多的世间,截止目前,微软已经发布.Net Core2.1,关于.NetCore的应用部署的文章比比皆是.今天借此,回顾下.net core环境的部署过程 ...
- 两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)
背景: 上一篇:两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一) 已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了. 直接进 ...
- ubutu tornado python3.7.5 nginx supervisor 部署web api
环境: 1.Ubuntu 服务器 2.python3.7.5 安装 1.python3.7.5 安装的话还是比较简单,流程大致是./configure ->make && mak ...
- Centos 6.5 下Nginx安装部署https服务器
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩.1.选定源码目录选定目录 /usr/local/cd /usr/local/2.安装PCRE库cd /usr/ ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- Centos7 部署.Net Core+Nginx+Supervisor
1.安装.Net Core SDK 1.1. 在安装.NET之前,您需要注册Microsoft密钥,注册产品存储库并安装所需的依赖项.这只需要每台机器完成一次. sudo rpm -Uvh https ...
- Django 部署 uwsgi + nginx + supervisor
Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...
- django+nginx+supervisor+gunicorn+gevent 网站部署
django+nginx+supervisor+gunicorn+gevent 网站部署 django,nginx,supervisor,gunicorn,gevent这几个都是在本领域大名鼎鼎的软件 ...
- flask +gevent+nginx+Gunicorn+supervisor部署flask应用
上篇 可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...
随机推荐
- Hi3516开发笔记(十一):通过HiTools使用网口将uboot、kernel、roofts烧写进eMMC
前言 前面烧写一直时烧写进入flush,是按照分区烧写.定制的板子挂的是eMMC,前面的烧写步骤一致,但是在烧写目标则时烧写eMMC了. 重新走一遍从无到有通过网口刷定制板卡的uboot.ker ...
- django学习第四天----mark_safe的用法,静态文件配置,用指令创建django项目应用注意点,ORM介绍,创建表执行命令,模板渲染补充(组件),inclusion_tag 自定义标签
补充第三天跟safe差不多的一个方法 templatetags文件夹 自定义的py文件 需要先导入模块 from django.utils.safestring import mark_safe @r ...
- Kotlin 协程五 —— 在Android 中使用 Kotlin 协程
目录 一.Android MVVM 结构 二.添加依赖 三.在后台线程中执行 3.1 协程解决了什么问题 3.2 保证主线程安全 3.3 withContext 的性能 四.结构化并发 4.1 追踪协 ...
- 【LeetCode二叉树#00】二叉树的基础知识
基础知识 分类 满二叉树 如果二叉树中除了叶子结点,每个结点的度都为 2,则此二叉树称为满二叉树. 完全二叉树 除了底层外,其他部分是满的,且底层从左到右是连续的,称为完全二叉树 满二叉树一定是完全二 ...
- 【夏令时】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天
前言 缘由 用@JsonFormat(pattern = "yyyy-MM-dd")注解,出生日期竟然年轻了一天 艺术源于生活,bug源于开发. 起因是艰苦奋战一个月,测试及验收都 ...
- Java 异常处理(2) : 异常处理的方式二:throws + 异常类型
1 package com.bytezero.throwable; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 impor ...
- PHP四则运算类(支持加、减、乘、除、小中括号)
<?php /** * 四则运算(支持加.减.乘.除.小中括号) * Class calculator */ class calculator { //保留几位小数点 public $point ...
- nginx Host值设置
$server_port :nigix监听的端口 $proxy_port : 服务器真正访问的端口 #设置请求头"Host"值(为入口域名和端口) proxy_set_header ...
- Spring与微服务
Spring与微服务 微服务论文 Melvyn Conway 的意识是,像下图所展示的,设计一个系统时,将人员划分为 UI 团队,中间件团队,DBA 团队,那么相应地,软件系统也就会自然地被划分为 U ...
- LosslessCut 视频 切割合并 - 软件推荐 - 非常好用
LosslessCut 视频切割合并 - 软件推荐 - 非常好用 下载地址 https://n802.com/f/14902046-490311155-557856 参考文章 http://www.r ...