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文件夹里的配置文件。
图片描述
图片描述
图片描述

阅读 7.3k
5 个回答

楼主,你的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
应该可以解决问题。

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

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

去掉 defuat_server 那里的配置

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

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

新手上路,请多包涵

disable selinux.try it.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题