更改代码时出现 Django、Nginx、FastCGI 缓存问题

Posted

技术标签:

【中文标题】更改代码时出现 Django、Nginx、FastCGI 缓存问题【英文标题】:Django, Nginx, FastCGI caching problem when I change code 【发布时间】:2011-06-14 15:58:17 【问题描述】:

我已经在我的一台服务器上安装了 Django、nginx 和 FastCGI。这是我的开发服务器,我在缓存方面遇到了非常困难的时期。每次我进行更改时,我都必须重新启动整个服务器才能看到实际的更改。重新启动 Nginx 进程也没有帮助。

所以可能是 Django 和/或 FastCGI 进行缓存。我还查看了settings.py,Django上没有设置缓存。

确保在更改页面代码时自动重置缓存的最佳方法是什么?非常感谢您的帮助。

【问题讨论】:

为什么不用内置的开发服务器?这就是它的目的,以防止您每次都必须重新启动。 【参考方案1】:

如果不是我们所说的 manage.py runserver,您必须重置服务器以查看代码更改以将 python 和您的代码重新加载到内存中。

只有 django 开发服务器才能检测到更改并为您重新启动。

如果你说你必须重启机器来更新代码,那么你应该看看如何重启你的 fastcgi 进程。

http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#stopping-the-fastcgi-daemonhttp://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#restarting-the-spawned-server

至于最好的方法?我在本地机器上开发,所以对我来说,部署脚本可以确保我从版本控制中获得最新更新并重新启动。否则,我只需键入 arestart(单手可键入的 bash 别名)。

【讨论】:

+1 这几乎肯定是问题所在。如果不是,请确保您没有错误配置 etag 并且正在页面上进行完全刷新。 Yuji,所以您使用的是第一个链接中的相同 shell 脚本? @itgorilla 不,我没有使用 FastCGI,但是重启脚本应该可以工作。这很简单,用manage.py runfcgi pidfile=mypidfile.pid 运行django,用'kill cat /path/to/mypidfile.pid' 杀死它 感谢您的建议。顺便说一句,阿根廷葡萄酒很棒:)。

以上是关于更改代码时出现 Django、Nginx、FastCGI 缓存问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache/NginX 部署时出现 Django Bad Request(400) 错误

Linux上的pyodbc fast_executemany在插入时出现乱码

使用 AWS Elastic Beanstalk 部署 Django 应用程序时出现 502 Bad Gateway nginx/1.20.0 错误

在我更改了一些模型字段(Django)之后,尝试访问 django admin 时出现 /admin/myapp/mymodel 的 TypeError

Django Admin 文件上传时出现“连接重置”错误

Django/React/Firebase - 上传大文件时出现 CORS 错误