背景 :前段时间在阿里云租了台轻量服务器,这两天刚开始学Django,所以直接在这台阿里云服务器上开发,服务器系统是CentOs。搭好开发环境之后第一步就卡主了:新建一个Django项目,啥都没写,想着先试试能不能用,启动Django的web服务之后在我本地浏览器一直访问不到。
过程:
1.先在cmd里ping云服务器,能ping通
2.关闭防火墙:$ systemctl stop firewalld.service,发现已经是关闭状态
3.启动服务时加上IP和端口参数:$python manage.py runserver 0.0.0.0:8080 结果没有用
4.设置允许访问的hosts,settings中设置: ALLOWED_HOSTS = [’*’] 还是没有用
5.最后是切换到root超级管理员,重新执行# python manage.py runserver 0.0.0.0:8080,还是不行。端口换成8000和8085都不行。
看了很多帖子上端口都是80,我也换成80试试:# python manage.py runserver 0.0.0.0:80,成功了
结论:到底是因为什么我也不知道,不想在这个小问题上都浪费时间了,没继续追查。但肯定是由于端口的原因,不知道为啥大端口就不行,小端口号就可以,我个人怀疑是8000、8080、8085这些端口号被云服务器所在局域网的其他服务器占用了,所以我自己的服务器收不到请求,毕竟我在浏览器输入地址只输入公网IP和端口号,他们局域网内是通过端口来识别一台主机的。希望深入了解之后能自然而然就能弄懂这个问题。
**
终于搞懂了!!
**
今天在部署MySQL的时候同样遇到端口问题,追查下去找到了原因:虽然CentOs里防火墙关了,但是阿里云安全组里面有防火墙,而这个防火墙是没开我上面提到的那些端口的,而默认开了80端口,所以80端口可行,而其他的几个都不能用,如图:
想用哪个端口先要在控制台里打开才行。