我有一个在 Nginx 和 Gunicorn 后面运行的 Django 项目。其中一个应用程序使用 Exscript 与网络设备交互,而 Exscript 又使用 Paramiko。有些设备在 Gunicorn 后面时无法正常工作。
相同的代码在 django-admin shell 中可以正常工作。如果我启动内置的 django 服务器,它也可以工作,但如果我绕过 nginx 并直接连接到 Gunicorn,我仍然会收到错误消息。
我尝试将功能移至 celery 任务,它有同样的问题,但只在 Gunicorn 后面。
我使用 django-extensions 编写了一个脚本,该脚本可以从命令行运行,但如果通过子进程调用会失败。但只在Gunicorn后面。
出现故障的设备似乎都是 F5 LTM,看起来 exscript 对象上的缓冲区正在以某种方式被修改。如果我不得不猜测,我会说 Gunicorn 和 Exscript/Paramiko 不知何故踩到了彼此的内存,或者 Gunicorn 正在设置一些 Exscript 正在接受的环境变量。
无论如何,我完全被难住了,并希望获得有关如何解决此问题的任何指导。