让django应用程序在127.0.0.1:8000上运行到处都可以访问?

时间:2015-06-21 07:15:10

标签: python django web-services

我只有ssh访问服务器。它来自amazon aws的ubuntu。我上传了我的django项目。当我运行命令python manage.py runserver或其任何变体时,服务器启动。

但是如您所知,这将不允许我访问Web应用程序 来自我的浏览器,它位于不同的网络上。

我的问题是

通过django的开发服务器或gunicorn将命令发送到runserver之后的方式是什么。我可以在浏览器中输入IP:8000来从外界访问它。

其次我想根据需要打开/关闭IP:8000的访问权限。就像我可以允许访问5分钟然后运行命令来停止来自外界的访问?

5 个答案:

答案 0 :(得分:1)

为了访问django项目,您可以使用命令

python manage.py runserver 0.0.0.0:8000

然后您将通过提供IP:8000

来访问它

注意:Django提供的服务器仅用于开发目的。如果您想要永久托管,您可能希望使用Apache或任何服务器,您可以在其中托管您的项目。希望这可以帮助 。 :)

答案 1 :(得分:1)

您需要在aws ec2实例上分配弹性IP地址(EIP),并允许入站流量0.0.0.0/0从其安全组端口8000。

然后你应该可以从EIP的每个地方访问它,例如http://54.12.23.34:8000

如果停止ec2实例,EIP可能会产生费用。

答案 2 :(得分:0)

您可能还想尝试命令:

python manage.py runserver [::]:8000

这会将runserver绑定到AWS VM上的所有可用接口。还请注意:runserver实际上只是用于开发。在生产中运行它是一个坏主意。

答案 3 :(得分:0)

您可以使用http://localtunnel.me/,这非常简单,但您只能将它用于开发目的。

答案 4 :(得分:0)

以防万一,你想在80端口上运行它,那么你需要root权限

date -d "`date +\"%Y-%m-04 00:00:00\"`" +%s