『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器部署Gogs服务

本文主要是介绍『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器部署Gogs服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

亚马逊EC2云服务器(Elastic Compute Cloud)是亚马逊AWS(Amazon Web Services)提供的一种云计算服务。EC2代表弹性计算云,它允许用户租用虚拟计算资源,包括CPU、内存、存储和网络带宽,以满足计算需求。

由于亚马逊云科技服务种类较多,且计费详细,很多用户有些看不懂,所以对使用亚马逊云科技云服务器望而却步。其实亚马逊云科技很多服务都有免费套餐,以让用户体验,这些服务的免费套餐,搭建一个Gogs服务绰绰有余。

Gogs是一款极易搭建的自助Git服务软件,它的开发目的是提供一个最简单、最快速和最轻松的方式来搭建自助Git服务。Gogs使用Go语言开发,因此可以通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、Mac OS X、Windows以及ARM平台。

1. 亚马逊EC2云服务器和nginx介绍

亚马逊EC2云服务器的主要特点和优势包括:

  1. 灵活性:用户可以根据需要随时启动、停止、调整和删除EC2实例,以便满足不断变化的计算需求。
  2. 可靠性:亚马逊EC2服务器提供高可用性和容错性,确保用户的应用程序能始终保持运行状态。此外,亚马逊EC2的服务等级协议承诺为每个EC2地区提供99.99%的可用性。
  3. 安全性:亚马逊EC2服务器提供了多层安全措施,包括网络隔离、数据加密和身份验证,以保护用户的数据和应用程序免受攻击。
  4. 成本效益:亚马逊EC2服务器采用按需计费模式,用户只需支付实际使用的计算资源费用,无需预先投资硬件或承担维护和管理物理服务器的费用。
  5. 可扩展性和功能性:亚马逊EC2提供了根据需要扩大或缩小规模的设施,能轻松处理各种动态场景。它还为用户提供了一个真正的虚拟计算平台,可以在其中执行各种操作,甚至可以从这个虚拟环境中启动另一个亚马逊EC2实例。

关于如何购买亚马逊云服务器,我这里不再重复赘述,详细可以查看这篇文章:https://blog.csdn.net/qq_43475285/article/details/134256935

  1. Gogs的优点主要包括以下几点:
    1. 简单易用:Gogs具有非常直观的用户界面和简洁明了的操作流程,使得用户可以快速上手并轻松使用。
    2. 轻量级:Gogs是一款轻量级的Git托管平台,安装和使用都非常简单,不需要复杂的配置和管理。
    3. 开源免费:Gogs是一款开源软件,用户可以自由获取和使用,并且可以自由定制和分享自己的版本。
    4. 功能丰富:Gogs提供了丰富的功能,包括代码审查、Webhooks等,可以满足团队协作的需求。
    5. 性能出色:Gogs的性能非常出色,可以轻松应对高并发的访问,保证服务的稳定性和可用性。
    6. 跨平台支持:Gogs可以在多种操作系统上运行,包括Linux、Mac OS X、Windows等,具有很好的跨平台性。
    7. 安全可靠:Gogs具有较高的安全性,采用了多项安全措施来保护用户的数据和隐私,使得用户可以更加放心地使用。

2. 登录云服务器

2.1 EC2云服务器准备

在购买好云服务器后,进入控制台https://us-east-1.console.aws.amazon.com/console

tips: 在右上角区域选择,要和购买服务器时所选区域一致,否则无法找到已经购买的EC2服务器资源

image-20231203111316702

进入EC2控制台,可以看到正在运行的实例信息

image-20231203112306177

关于登录到云服务实例终端,有很多种方法,最方便的是在实例详细信息右上角点击连接

image-20231203112422392

可以选择使用Instance Connect 进行连接或者Instance Connect 端点进行连接,可以直接在web端进行终端控制

image-20231203112558792

但是为了方便后续的开发部署,并不是很推荐这种方式

image-20231203125432089

可以在本地安装一个shell登录软件。

2.2 EC2云服务器远程访问

常见的终端shell访问软件有Finalshell,putty,xshell等等。我这里使用的是finalshell

输入基本信息后,进行访问

tips:这里需要注意的是,初次访问现需要登录ec-user,才能继续访问root用户

image-20231203132322657

登录成功后再ec-user账号下使用sudo权限设置密码

登录成功后设置root密码

sudo passwd root

image-20231203132603212

3. Gogs部署

3.1 Docker 部署

安装必要软件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

image-20231203230009832

添加Docker的yum仓库

需要添加docker的官方yum仓库,这样你才能下载并安装docker。可以使用下面的命令添加仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

安装docker-ce

sudo yum install -y docker-ce docker-ce-cli containerd

image-20231203230139796

启动docker

sudo systemctl start docker

3.2 部署Mysql数据库

  • 拉取镜像
[root@ip-172-31-17-183 ~]# docker pull gogs/gogs:latest
latest: Pulling from gogs/gogs
1207c741d8c9: Pull complete 
f6d0bc289bd1: Pull complete 
ffcf93ebe546: Pull complete 
ef47a0134386: Pull complete 
11db1bd6e300: Pull complete 
d768c60ea5e0: Pull complete 
7b2d9082f869: Pull complete 
Digest: sha256:a79112b800b3daba5d3e0e569734abc88e59120e012b34a25d532b00c2ab0a9b
Status: Downloaded newer image for gogs/gogs:latest
docker.io/gogs/gogs:latest
[root@ip-172-31-17-183 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
11a38aebcb7a: Pull complete 
91ab01309bd6: Pull complete 
6c91fabb88c2: Pull complete 
8f46e806ab5c: Pull complete 
29f5af1d1661: Pull complete 
62aca7179a54: Pull complete 
85023e6de3be: Pull complete 
6d5934a87cbb: Pull complete 
c878502d3f70: Pull complete 
4756467c684a: Pull complete 
ee9043dd2677: Pull complete 
Digest: sha256:f566819f2eee3a60cf5ea6c8b7d1bfc9de62e34268bf62dc34870c4fca8a85d1
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
  • 创建挂载目录
[root@ip-172-31-17-183 ~]# mkdir -p /data/gogs/{data,mysql}
[root@ip-172-31-17-183 ~]# chmod -R 777 /data/gogs/
  • 创建Mysql容器
[root@ip-172-31-17-183 ~]# docker run -d --name gogs-mysql --restart always -e MYSQL_ROOT_PASSWORD=gogs -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogs -p 3306:3306  -v /data/gogs/mysql:/var/lib/mysql  mysql:5.7
a7633b88638d114c49c63d7a5d5f4a32cb0d65eca85254b286534d7d28e0f3a3
  • 设置Mysql用户权限
[root@ip-172-31-17-183 ~]# docker run -d --name gogs-mysql --restart always -e MYSQL_ROOT_PASSWORD=gogs -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogs -p 3306:3306  -v /data/gogs/mysql:/var/lib/mysql  mysql:5.7
a7633b88638d114c49c63d7a5d5f4a32cb0d65eca85254b286534d7d28e0f3a3
[root@ip-172-31-17-183 ~]# docker exec -it gogs-mysql /bin/bash  # 进入mysql容器内
mysql -uroot -p        # 连接本地mysql数据库
bash-4.2# mysql -uroot -p        # 连接本地mysql数据库
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  • 对用户赋权
bash-4.2# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%' IDENTIFIED BY 'gogs';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)mysql> 

3.3 部署Gogs

  • 创建Gogs容器
[root@ip-172-31-17-183 ~]# docker run -d --name=gogs --restart always -v /data/gogs/data:/data -p 10022:22 -p 3000:3000 --link=gogs-mysql:mysql gogs/gogs
a6d76147da9031443495cb8c372c60e452390d9d5b5023f4ee359fb736327b53
  • 查看Gogs容器状态
[root@ip-172-31-17-183 ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                    PORTS                                                                                NAMES
a6d76147da90   gogs/gogs   "/app/gogs/docker/st…"   44 seconds ago   Up 42 seconds (healthy)   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:10022->22/tcp, :::10022->22/tcp   gogs
a7633b88638d   mysql:5.7   "docker-entrypoint.s…"   4 minutes ago    Up 4 minutes              0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                 gogs-mysql
[root@ip-172-31-17-183 ~]# 

4. Gogs初始化配置

访问地址:http://18.208.218.11:3000/,进入到初始配置界面。

image-20231206002038148

创建管理员账号,自定义设置即可,点击“立即安装”。

image-20231206002237816

这篇关于『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器部署Gogs服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460655

相关文章

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启