带有Django的Web应用程序,用于远程代码执行
我正在尝试用带有Django的Web应用程序,用于远程代码执行,django,apache,mod-wsgi,Django,Apache,Mod Wsgi,我正在尝试用Django开发一个web应用程序,它可以让用户在服务器上运行C程序。我目前正在执行的步骤如下: 用户键入代码并单击“Submit”按钮 代码进入服务器;服务器将其放入一个临时文件中 代码是通过调用subprocess.Popen() 输出(错误)返回到浏览器 这是一个简单的模型,运行良好。但是,我不确定这是否是一个“完美”的模型,我对它的可伸缩性(和安全性)有些担心: 使用线程会更好吗 使用多处理会更好吗 叉子炸弹问题是在我提出的一个相关问题中指出的——如何处理?apache2
Django
开发一个web应用程序,它可以让用户在服务器上运行C程序。我目前正在执行的步骤如下:
- 用户键入代码并单击“
”按钮Submit
- 代码进入服务器;服务器将其放入一个临时文件中
- 代码是通过调用
subprocess.Popen()
- 输出(错误)返回到浏览器
线程
会更好吗李>
多处理
会更好吗李>
apache2.conf
中的以下设置是否能够处理此类情况mod_wsgi
和mpm prefork
正在使用Apache2
谢谢你的建议 也许这个项目会对你有所帮助
芹菜是一种基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度
执行单元称为任务,使用多处理、Eventlet或gevent在单个或多个工作服务器上并发执行。任务可以异步执行(在后台)或同步执行(等待准备就绪)。不管您在做什么,使用mod_wsgi和prefork MPM的嵌入式模式都是一个坏主意。去看看谢谢,我用的是
芹菜
。但是,不确定与性能相关的事情。
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves