当前位置: 首页 > 面试题库 >

如何在nginx后面正常重启运行fcgi的django?

施凡
2023-03-14
问题内容

我正在使用fcgi(通过使用manage.py runfcgi命令)连接的nginx后面运行django实例。由于代码已加载到内存中,因此我无法在不终止并重新启动django fcgi进程的情况下重新加载新代码,从而中断了实时网站。重新启动本身非常快。但是通过首先终止fcgi进程,某些用户的操作将被打断,这是不好的。我想知道如何在不引起任何中断的情况下重新加载新代码。忠告将不胜感激!


问题答案:

我将在新端口上启动一个新的fcgi进程,将nginx配置更改为使用新端口,进行nginx重载配置(其本身是正常的),然后最终停止旧进程(可以使用netstat来查找何时与旧端口的最后一个连接已关闭)。

或者,你可以更改fcgi实现以派生一个新进程,关闭子进程中除fcgi服务器套接字之外的所有套接字,关闭父进程中的fcgi服务器套接字,在子进程中执行一个新的django进程(使其使用fcgi服务器套接字),并在所有fcgi连接都关闭后终止父进程。IOW,为runfcgi实现正常重启。



 类似资料:
  • nginx-fcgi 是一个简单的 Perl 脚本用来使得 Nginx 服务器支持 CGI 脚本执行。

  • 我正在尝试使用nginx作为反向代理来连接到NIFI。我正在使用以下流:本地机器->http->NGINX->https->安全NiFi 下面是我的nifi.properties配置: 下面是我的nginx配置:

  • 问题内容: 我想在重新启动后通知工作正常。我提醒开始,但一次。如果我随后更改了手机上的日期,则没有通知。只有再次运行该应用程序,它们才会运行。也就是说,在不启动应用程序的情况下重新启动电话后,启动电话时,通知仅显示一次。 我在 MainActivity中 设置了通知时间: MyAlarmService (onCreate): MyReceiver: AndroidManifest(MyReceiv

  • 我有Laravel项目,可以运行它 我正在目录中执行此命令。之后,我可以看到网站上http://localhost:8000虽然速度很慢,但可以导航。 现在我正在配置apache服务的同一个地方: 不是,我将应用程序指向的不是项目的根目录,而是目录。这使我能够打开该网站的主页,但单击任何链接都会导致错误404。 如果我发球 对于Apache,我根本看不到主页,说403禁止。这可能是因为此目录没有。

  • 定期任务配置: 在Logcat中,我得到以下内容: 附加所有相关细节: 编辑一:经过几天的分析,我想出了以下几点: 这是特定于设备的问题。例如,在nexus设备上不会发生。 这是一个更大问题的一部分。显示此行为的设备在使用、和时也不能正常工作。 一个解决方案是此解决方案。但是,这个解决方案至少存在2个问题。(1)当您终止应用程序时,权限将被重置。这意味着每次你打开应用程序后,手动权限是给予。(2)

  • 有一个 JDK 错误:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8022628 它将在49.7天内获得java.net.SocketTimeoutException。 在那个链接中,它说“我们已经加速了cpu的正常运行时间”。我想测试一下这个bug,但是我不知道如何“加速cpu的正常运行时间”。 我运行了上面的程序,而不是将时间更改为4