更改代码时出现 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