文章目录
本篇幅为零基础教学,所有的过程都有指引,从选购到部署后的网站配置,无需Linux基础。
可用于部署在线测评系统来提供给高中信息学,ACM类竞赛,信息学类培训机构或个人使用
将部署两个OJ平台,在文末有效果图,可按需进行部署使用。
如何选配Flexus云服务器X实例服务器
Flexus云服务器X实例是一款能自主选择选择可灵活自定义vCPU内存配比,非常适用于部署信息学教学平台,同时拥有海量的公共镜像,在扩展网站插件的时候也非常方便,同时该实例支持在不中断业务的情况下变更规格,提高了资源调整的灵活性和效率,非常适合在进行大规模比赛时即使扩展的场景。
本篇文章将针对HydroOJ 与 HOJ两个OJ平台进行部署教学,下面将提供两个OJ的大致的样式以及优缺点方便选用。
当前,华为云正热烈开展828 B2B企业节活动,其中Flexus X实例的优惠力度极大,非常值得一探。特别是对于那些对算力性能有高标准,并且需要自建MySQL、Redis、Nginx以达到卓越性能的朋友们,这绝对是一个不容错过的机会。
HydroOJ
- 拥有强大的评测系统,评测设置支持可视化页面配置,可评测 SpecialJudge 题、文件 IO 题、函数交互题、IO 交互题、提交答案题、客观题试卷,支持 Hack 功能,支持自定义编译和运行过程以支持所有存在的题型。
- 拥有强大的权限系统,可通过六十余项细粒度权限自由管理用户在域内的所有权限。还可将用户分配至小组,设置资源仅对某些小组开放,非常方便学校/培训机构对学生进行分组管理。
- 拥有作业功能,方便学校/培训机构为学生设置作业。拥有训练计划功能,方便用户分享做题计划。
HOJ
- 支持手机端,响应式布局
- UI美观,拥有讨论区、题目讨论、比赛讨论、同时拥有站内消息系统,支持私有训练、公开训练(题单)
- 支持testlib的特殊评测、交互评测、子任务评测,高度集中网站配置,操作简单
服务器资源的选取
根据OJ的使用情况,我们应当选用相应的服务器资源,Flexus云服务器X实例能解决在线测评平台可能会存在阶段性高负荷使用的情况,在资源不足的情况下可以即时补充不需要担心。
在线测评系统对CPU和内存的需求都较高,在此我们仅仅考虑中小型网站索要选用的资源比。因为是零基础教学,所以我们将尽可能的对每一板块都进行介绍,如果您熟悉某一部分可以直接跳过。
首先进入华为云# Flexus云服务器X实例页面,点击购买进入服务器资源选配。
基础配置
计费模式 : 包年/包月(测试选择 : 按需计费)
区域 : 默认选择离您当前位置最近的,不用改变
实例规格
选择服务器内存与vCPU大小
Hydro建议最低配置 :CPU: 2核 内存: 4G
HOJ官方给出的推荐配置 :
不建议使用官方给出的最低服务器配置,在多数服务器中都会出现内存不足,测评机挂机的现象,无法正常测评,甚至网站崩溃。
推荐程度 | CPU | 内存 | 硬盘 | 建议 |
---|---|---|---|---|
最低服务器配置 | 1核 | 2G | n*20G | 只推荐测试用,内存不足... |
推荐服务器配置 | n*2核 | n*4G | n*20G | 推测大约n*(100~200)人使用 |
镜像、存储、网络
- 镜像
可以使用CentOS , Ubuntu , Debian 这几个Linux发行版本,尽量选择已经被测试过的版本。
CentOS 8.2 64bit(40GiB)
Ubuntu 22.04 server 64bit(10GiB)
Debian 9.0.0 64bit(40GiB)
Ubuntu 22.04 server 64bit(10GiB)
对于低内存的服务器不是很友好,建议内存大于4G以上使用。
- 存储
建议预留20GB的内存就能完成日常使用,如果选用HOJ
需要预留 30GB左右。
- 网络
默认即可
弹性公网IP
务必购买 : 不使用弹性公网IP的云服务器不能与互联网互通,仅可作为私有网络中部署业务或者集群所需云服务器进行使用。
后续为服务器挂载临时测评机的时候无需购买
要考虑在线测评平台主要应用的场景,一般来说对于普通用户的一次请求大概占用 0.4M/s
, 对宽带的选用我们需要考虑很多东西, 网站是否动态化,是否有相关的文件需要下载,是否要进行比赛。
一般来说如果仅仅用于日常评测使用,推荐使用按宽带计费,每日使用人数 / 20 的宽带足以 。 超过100人可以按照 每日使用人数多50再加1MB ,大型OJ需要自行进行测试 。
需要进行比赛,日常使用人数较少,可以使用按流量计费 ,可以直接选大宽带, 我测试的服务器因为不会有很大的压力,所以选择的是 4MB宽带。
云服务器名称
在当前位置设置密码,重命名
购买服务器即可
部署HydroOJ
1.设置安全组、开放端口
- 进入服务器的控制中心,点击安全组 , 配置规则
-
点击入方向规则,添加端口信息
-
添加端口信息 开放
80,443,2019,8888,5050,27017
端口 , 优先级为1
- 同理添加出方向
80
端口 , 优先级为 1
2.部署HydroOJ回到控制中心,远程登录
按照图示操作即可。
因为 Hydro 有一键部署包 , 直接运行下面的命令,等待几分钟即可。
cpp
cLANG=zh . <(curl https://hydro.ac/setup.sh)
中途可能会有部分警告,不用担心,只要安装完成后几个容器能正常 open
即可。
最终使用刚刚创建的弹性公网IP就能访问自己创建的OJ平台。
部署HOJ
需要注意的是HOJ的UI虽然更加的现代化,但是HOJ没有一键部署的功能,下面我将一点一点引导您进行HOJ的部署。
![[Pasted image 20240906165814.png]]
首先进入到服务器的后台
安装docker
-
安装需要的包
sudo apt-get update
安装依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Do you want to continue? [Y/n] 输出 Y
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置远程仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Press [ENTER] to continue or Ctrl-c to cancel. 按一下回车
安装 Docker-CE
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
验证是否成功
sudo docker run hello-world
如果成功会显示如下场景 :
如果未成功,请第一时间检查自己机器的内存,如果小于3G可能是因为内存溢出导致的,只能升级配置在使用。
# 安装docker-compose
-
下载
sudo curl -L https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
授权
sudo chmod +x /usr/local/bin/docker-compose
部署HOJ
一键部署,需要等待大概10-20分钟
cpp
git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy
cd standAlone
docker-compose up -d
docker ps -a
目前,华为云正在盛大举办其年度828 B2B企业节,这是一次专为企业用户打造的数字盛宴,汇聚了众多云计算产品与服务的超值优惠。在这场活动中,Flexus X实例以其前所未有的促销力度,成为了众人瞩目的焦点。
Flexus X实例,作为华为云旗下的高性能计算解决方案,凭借其强大的算力性能和灵活的资源配置,能够满足各种复杂应用场景的需求。无论是大数据分析、机器学习、还是高性能计算,Flexus X都能提供稳定、高效的支持。
而对于那些对自建数据库、缓存、以及Web服务器性能有着严格要求的用户来说,Flexus X实例更是不可多得的选择。它能够轻松应对MySQL数据库的高并发访问,确保数据的快速读写与安全性;同时,对于Redis这样的高性能缓存系统,Flexus X也能提供充足的资源保障,确保缓存命中的高效与稳定。此外,在Nginx作为反向代理或负载均衡器时,Flexus X实例同样能发挥出其强大的网络处理能力,为用户的Web应用提供流畅、稳定的访问体验。
因此,如果您正寻找一款性能卓越、灵活可靠的云计算解决方案,那么华为云828 B2B企业节中的Flexus X实例优惠活动,无疑是一个值得您重点关注和把握的机会。不妨现在就登录华为云官网,了解更多详情,并享受这次难得的促销福利吧!