Django测试服务器突然不工作?
我一直在使用Django web框架开发一个web应用程序。很久以前,我设置了一个别名,这样当我在命令提示符下键入Django测试服务器突然不工作?,django,port,Django,Port,我一直在使用Django web框架开发一个web应用程序。很久以前,我设置了一个别名,这样当我在命令提示符下键入go-d(运行Ubuntu Linux服务器)时,它会启动命令/manage.py runserver 123.456.789.132:2222/(此处所有信息都是假的)。在过去的6个月里,我不知道这一切都很好 今晚,发生了一件奇怪的事。我正在远处工作(用油灰遥控),突然我的连接中断了。我检查了服务器上的日志文件,看起来好像有人从另一个国家试图访问web服务器(我也在这台服务器上运行
go-d
(运行Ubuntu Linux服务器)时,它会启动命令/manage.py runserver 123.456.789.132:2222/
(此处所有信息都是假的)。在过去的6个月里,我不知道这一切都很好
今晚,发生了一件奇怪的事。我正在远处工作(用油灰遥控),突然我的连接中断了。我检查了服务器上的日志文件,看起来好像有人从另一个国家试图访问web服务器(我也在这台服务器上运行一个活动网站)。鉴于这些访问看起来可疑,我决定在apache2配置文件中的行中使用拒绝来阻止它们
在阻塞了他们的IP地址之后,我尝试用相同的命令启动Django测试服务器。但是,现在我得到了错误:该端口已经在使用中。
错误
当我执行netstat-antwup
时,它不会显示任何已建立或正在侦听的端口2222(我将其解释为端口2222未被使用)
这个新的正在使用的端口
问题是否与我的网站的外地不友好访客有关
有什么帮助吗
[编辑-更新:]好的,所以我试着做了一个手动/manage.py runserver 123.456.789.123:2244
(使用不同的端口)工作正常。然后我返回到原始别名go-d
,它使用原始端口(2222),并且正在工作。我想我可以说我的问题得到了回答,但现在我很好奇到底发生了什么。
为什么我通常使用的端口突然已经在使用?Django测试服务器有时会这样做吗
有什么想法吗
谢谢 这也是我经常遇到的问题。
如果程序未正确关闭,套接字管理仍在侦听端口。
例如,当使用Ctrl+C组合键对某个对象进行量化时。
这会停留一段时间,在某一点上端口会再次释放。
只要改变端口,如果它发生了,应该是最好的方式为您这样做
有很多方法可以解决这个问题,但是你需要和django一起玩一会儿
我曾经读过一篇关于这个的文章,如果你想的话,我可以再找一次
在纯python中检查这一点的方法是
try:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
s.bind((HOST, PORT))
except socket.error, e:
if e....
print "address already in use"
出于完整性的考虑,我也曾有过同样的问题,这是数据库连接的问题,所以请检查您的设置,但在这种情况下,在等待服务器启动一段时间后,它给了我一个错误。非常好,谢谢!这对我来说是有意义的,并且消除了我的恐惧,即有人在我为Django使用的同一个端口上劫持了我的服务器。我想我只是惊讶于Django的测试web服务器已经完美地工作了几个月,然后突然停止了。