django的部署时每次重启nginx就提示That port is already in use。


nginx的配置如下,我在runserver 12.23.34.45:80之后就会出现That port is already in use,但是不知道是怎么占用了80端口,必须要手动fuser -k 80/tcp,还是觉得nginx的配置有问题,而且现在访问的话网站还没有样式,到底哪里错了%>_<%,前两个图是nginx.conf,最后一个是sites-enable文件夹里的配置文件。
图片描述
图片描述
图片描述

python django nginx Ubuntu

dishors 10 years, 3 months ago

disable selinux.try it.

madao18 answered 10 years, 3 months ago

去掉 defuat_server 那里的配置

修改 settings.py 中设置 STATIC_ROOT ,告诉 staticfiles 将所有的静态文件收集到哪里。
然后运行 python manage.py collectstatic 收集静态文件

再用添加一个 location nginx 指向收集的静态文件夹

我是个好人。 answered 10 years, 3 months ago

去把80端口的进程杀掉就好了~

ESWILL answered 10 years, 3 months ago

楼主,你的app_server运行的端口有问题:
listen 80 default_server

以上这条语句80端口已经被nginx使用监听;但楼主用以语句运行app_server,使用的是80端口
runserver 12.23.34.45:80
所以会出现重启nginx时port is already in use的现像,因为重启nginx时,app_server先占用了80端口。楼主改为
runserver 12.23.34.45:9000
应该可以解决问题。

月面戦争D英霊 answered 10 years, 3 months ago

应该还是nginx的配置问题
我看nginx配置里 app_server 指的是9000端口,那你运行runserver :80端口肯定不行吧?
另外runserver这种方式本地开发用用,真正生产环境还是可以试试gunicorn什么的。
另加外静态文件的问题应该也是nginx配置的问题,不知道你的代码目录dlpucsdn下面有没有static目录,在nginx里改一下Static的相关配置试试?

Loxias answered 10 years, 3 months ago

Your Answer