想自己搭建公网OJ系统,有一些困惑需要解决!

搭建OJ目前遇到的一些问题和困惑,希望得到解答!
一、选择哪个开源的OJ

需求是用于信息学奥赛的竞赛和学习系统,要求不高,主要是配套书籍的几百个题目,目前有了解过hostoj和qduoj,他们各自有哪些优势和劣势?还有其他推荐的吗?

二、服务器

搭建后准备注册域名,开设公网接口,如果是正常最多一百人左右同时在线的情况,对服务器配置有哪些要求,能否写个配置单。
服务器推荐使用云服务器还是实体的服务器?实体是不是需要独立的ip,以及等保评测?

三、

自己搭建的OJ,后期维护成本高不高,会不会面临网络安全问题容易要求下架等,主要是考虑长远的需求,谢谢!

核心的目标就是搭建一个能够外网访问的OJ平台,能够正常稳定的评测,不要被网jin警告下架啥的。本人对OJ搭建相关的内容不是很擅长,望得到较为全面的解答,谢谢!

你这个面向哪些人群,能同时支撑多少在线用户

推荐hdoi,界面看着比较舒服。平常练习比较多的话2核2G应该够了,如果是举办比赛比较多的话再翻倍,建议云服务器;运维不知道

一、选择哪个开源的OJ

在选择开源的OJ平台时,不同的OJ平台各有优点和不足,需要考虑您具体的需求和预算等因素。

HostOJ的优点是支持多语言、支持多种评测机模式、web界面易于使用等。但HostOJ对于评测机的CPU要求较高,且可能需要占用大量的内存和磁盘空间;同时这个项目的更新和迭代速度较慢。

QDUOJ是国内比较有名的OJ平台,支持多种语言、多种评测机模式,有较大的社区支持,很多大佬会在这里分享题解和代码,增加了学习的乐趣。但QDUOJ的web界面可能不算特别好看。

推荐两个OJ:

  • Vjudge协同评测平台:支持多个OJ联合评测,方便练习和比赛,同时也支持新建账号。使用简单,支持多种语言,支持自己添加评测机,维护成本较低。
  • OnlineJudge:Linus大神编写的开源可裁判的在线判题系统,有较大的社区支持,支持多种编程语言、评测机模式和数据导入等功能,可通过Docker进行部署。

二、服务器

对于最多一百人左右同时在线的情况,建议选用一台内存较大、硬盘容量相对较小但速度较快的服务器。服务器的配置单可以参考下面的方案:

CPU:2核或4核CPU,建议选择英特尔Xeon i5或i7四核处理器。

内存:至少8GB内存,以满足同时在线评测请求与数据库管理等任务的需求。

硬盘:512GB SSD硬盘,以提高评测机的运行速度。

操作系统:建议使用Ubuntu或CentOS等较为稳定的Linux发行版,安装nginx作为服务器。

网络:需要有足够的带宽支持,建议网络带宽不低于100Mbps。

推荐使用云服务器:能够根据需求灵活调整不同配置的服务器,同时云服务器还提供备份和恢复等服务,具有很高的弹性。如果您选择实体服务器,最好选择配置比较高、数据中心有严格的安全措施和备份机制的机器。

三、自己搭建的OJ,后期维护成本高不高,容易要求下架吗?

自己搭建OJ平台,需确定确保平台的安全性、可靠性和维护性,需要进行修复漏洞、更新软件、备份数据等操作,具有一定的维护成本。

如果您遵循最新的安全标准,并且及时更新软件和操作系统,将数据加密保护、设置误操作恢复、备份数据等措施,OJ的网络安全可以得到保证,因此不容易被要求下架,除非因为其他方面原因,例如法律和合规要求等。

希望以上内容能够帮助您更好地搭建OJ平台,加油!

可以放到公有云上面去,这些学习系统,也有一些云系统可以选用,开通账户就好。这样从头开始,成本有点高

服务器用阿里云吧 ,会有独立的ip 链接:https://www.aliyun.com/activity/new/index?userCode=4xvtfyvu
正常最多一百人左右同时在线的情况,对服务器配置有哪些要求 : 2核 4G基本够用了 或者4和8G

一、hostoj和qduoj都是比较常用的开源OJ系统,它们都拥有成熟的题库、完善的评测系统以及友好的操作界面。不过两者还是存在一些差异的:

  • hostoj:注重简洁易用,适合刚开始搭建或新手使用;支持多语言评测;支持竞赛模式。
  • qduoj:功能更加丰富,支持ACM-ICPC规则下的编程竞赛;支持在线编译器,可以直接在网页上完成代码编写和测试。

除了以上两个,还有一些其他的开源OJ系统,例如Vjudge、HustOJ等,也可以根据具体需求进行选择。

二、对于同时最多一百人左右同时在线的情况,服务器配置的要求相对比较低,推荐使用云服务器,因为其便捷灵活,安全性高。一般来说,建议选用2核4G内存的机器,在Linux环境下运行OJ系统。云服务器的选购可以根据自己的预算和需求进行选择,常见的云服务商有阿里云、腾讯云、华为云等,都有对应的OJ应用解决方案。

针对网络安全问题,建议定期备份数据并进行监控,确保系统稳定性和安全性,此外可以搭建好防火墙等安全措施,以保证系统的安全性。同时,如有用户投诉,应及时处理并做好记录,确保OJ的合法、正常运营。

关于选择哪个开源的 OJ
HostOJ 和 QDUOJ 都是比较成熟的开源 OJ 系统,它们都提供了完整的 OJ 功能和丰富的题库资源。两者的主要区别在于,HostOJ 更加注重界面设计和用户体验,而 QDUOJ 则更加注重性能和扩展性。您可以根据自己的需求和喜好进行选择。

除了 HostOJ 和 QDUOJ,还有一些其他的开源 OJ 系统,例如 UOJ、HUSTOJ、ZOJ 等,您也可以了解一下它们的特点和优缺点,进行比较和选择。

关于服务器配置要求
对于能够最多有 100 人同时在线的 OJ 系统,通常需要考虑以下服务器配置要求:

CPU:建议使用主频高、核心数多的 CPU,例如 Intel Xeon E5 系列、AMD EPYC 系列等。
内存:建议配置至少 8GB 的内存,以保证系统能够同时处理多个评测请求和用户请求。
存储:需要足够的存储空间来存储题库、代码和评测记录等数据。建议使用高速固态硬盘(SSD)来提高读写性能。
网络带宽:需要足够的网络带宽来支持用户的访问和评测请求。建议使用宽带网络和高速路由器,以提高网络传输速度和稳定性。
以下是一个简单的服务器配置单,供参考:

CPU:Intel Xeon E5-2630 v4(2.2GHz,10核心,20线程)
内存:16GB DDR4 ECC 内存
存储:512GB SSD
网络带宽:100Mbps 宽带
这样的服务器配置可以满足同时有 100 人在线的 OJ 系统的需求。

对于云服务器和实体服务器的选择,主要取决于您的实际需求和预算。云服务器具有灵活、可扩展、高可用等优点,而实体服务器则更加稳定、可靠,但需要更多的管理和维护工作。如果您需要快速部署和扩展,可以考虑使用云服务器;如果您有一定的 IT 管理和维护能力,并且需要更高的可靠性和安全性,可以考虑使用实体服务器。

无论是使用云服务器还是实体服务器,都需要确保服务器有独立的 IP 地址,并且符合网络安全要求。如果您使用的是云服务器,建议选择可信赖的云服务供应商,并进行必要的安全配置和加固工作;如果您使用的是实体服务器,则需要考虑更多的物理安全和网络安全问题。

关于维护成本和网络安全问题
建立和维护一个 OJ 系统需要一定的技术和管理能力,包括服务器管理、数据库管理、应用程序管理、网络安全管理等方面。如果您没有足够的技术和管理能力,可能需要花费更多的时间和资源来学习和解决相关问题,这可能会增加维护成本和风险。

对于网络安全问题,OJ 系统可能面临一些常见的攻击和漏洞,例如 SQL 注入、跨站脚本攻击、文件上传漏洞等。为了确保 OJ 系统的安全性,您需要采取一些措施,例如:

对服务器进行必要的安全配置和加固,例如关闭不必要的服务、限制访问权限、安装防火墙和安全软件等。
对 OJ 系统进行必要的安全配置和加固,例如设置安全策略、进行漏洞扫描和修复、限制用户权限等。
定期备份数据和日志,以防止数据丢失或损坏。
定期更新系统和应用程序,以修复已知的漏洞和安全问题。
建立安全审计和监控机制,及时发现和处理安全事件和异常情况。
如果您没有足够的安全经验和技能,建议考虑寻求专业的安全服务和支持,以确保 OJ系 统的安全性和稳定性。

搭建和维护一个 OJ 系统需要考虑多个方面的问题,包括软硬件选择、配置要求、安全管理等。
如果您没有足够的经验和技能,可能需要花费更多的时间和资源来学习和解决相关问题。
建议在选择和使用 OJ 系统之前,先进行充分的了解和评估,以确保系统能够满足您的需求,并且能够正常稳定地运行和评测。

从零开始搭建oj(ubuntu)

可以借鉴下
https://blog.csdn.net/weixin_62313535/article/details/126158122

2h2g 5m带宽50g存储
Ubuntu

首先要进行网站备案,这样才不会被查,另外关于云服务器和实体服务器之间的选择,云服务器阿里云一年一万多的差不多可以了,具体费用可以去阿里云官网看,一般在双11等时间会有优惠,如果实体服务器主要费用是网络的专线费用。一年几万吧,具体的可以咨询当地运营商,每个地方不一样