OnlineJudge 2.0(QingdaoU)分析

项目地址:https://github.com/QingdaoU/OnlineJudge

OnlineJudge架构

前端:基于Vue.js

WebServer:基于Django

负责与前端进行交互;接收前端的题目提交后,将提交放入队列中

队列:基于redis

评测模块Judger:从队列中取出提交,利用sandbox进行测试,将测试结果存入mysql数据库

Sandbox:基于Linux的Seccomp

Seccomp (Secure Computing Mode) 是一种Linux内核提供的安全特性,它可以实现应用程序的沙盒机制,以白名单或黑名单的方式限制进程进行系统调用。

数据库:基于MySQL

一共使用两类数据库:一类存储用户信息、题目信息,另一类存储测试结果。数据库都和WebServer进行交互。

参考资料:

  1. docker容器安全:https://www.cnblogs.com/yunpiao111/p/5997096.html
  2. https://www.zybuluo.com/virusdefender/note/171932

你可能感兴趣的:(OnlineJudge 2.0(QingdaoU)分析)