如何使用 mod_wsgi 手动启动并重新启动 Apache 来为受密码保护的 Python WSGI 应用程序提供支持?

如何使用 mod_wsgi 手动启动并重新启动 Apache 来为受密码保护的 Python WSGI 应用程序提供支持?

我正在开展一个项目,必须满足一些监管要求,这些要求要求至少 5 个授权用户中的 3 个启动后端 Web 服务,使用预先分配的密码处理非常敏感的信息。

目前,原型已获批准,并正在使用 Python 的wsgiref.simple_server(),我已将其编程为手动提示输入密码。现在原型已获得批准,我必须将 Web 应用程序迁移到生产环境,在那里我需要在后台运行它Apachemod_wsgi

我有两个问题:

  1. 现在,我使用一个精简的 Python 包装器expect以编程方式允许远程输入密码。如何让 Apache 在启动前提示我输入密码?这是否必须在app.wsgi由 执行的脚本中mod_wsgi?由于 Apache 是守护进程,因此没有 stdin,那么这将如何工作!

  2. 我是否需要担心某种类型的代码重新加载?Apache 在终止并重新启动另一个工作进程之前可能具有最大请求数,但这是否也需要密码提示?

任何帮助都将不胜感激。

答案1

通过 modwsgi 作为访问提供程序进行 HTTP/Digest 身份验证应该适合您的情况。modwsgi 网站

与 expect 和 stdin 相比,使用 HTTP 身份验证是一种更为普遍接受的身份验证方式。

至于代码重新加载,只要您不设置最大请求值,您就不必担心重新启动。使用 HTTP 身份验证,重新启动实际上并不重要。

答案2

用户可以通过触摸 .wsgi 文件来重新加载 wsgi 进程(从而更新 apache 提供的代码)。(即触摸 /path/to/file.wsgi)

您可以使用 linux 权限和 sudo 要求他们输入自己的系统密码来保护这一部分。

相关内容