【问题标题】:Setting up a server for Django app reachable from the outside为可从外部访问的 Django 应用程序设置服务器
【发布时间】:2012-06-04 12:41:26
【问题描述】:

我编写了一个使用 webhook 的 Django (1.4) 应用程序:在某个时间向我的应用程序发出 POST 请求。出于测试目的,我必须在我的本地机器上尝试它,但我需要从外部访问应用程序(仅现在,在开发期间)。

现在,问题是 Django 开发服务器在本地主机 (127.0.0.1) 上运行,只能从我的机器访问。所以我想到了一个 Gunicorn + nginx 服务器:我怎样才能设置它来满足这些要求?

谢谢你,
魔方

【问题讨论】:

    标签: python django nginx gunicorn


    【解决方案1】:

    从外部也可以看到开发服务器:

    manage.py runserver 0.0.0.0:8000
    

    否则,设置 nginx 和 gunicorn 很容易并且有据可查。

    【讨论】:

    • 不幸的是,这对我不起作用。我尝试使用在线工具 hurl.it 执行请求,但失败说它无法连接到服务器。
    • 说实话,我不知道。可以肯定的是,我根本没有配置任何防火墙。我在一台运行 ArchLinux 的机器上,所以我认为不涉及防火墙。
    • 检查您的服务器是否可以从外部网络访问,否则没有,您选择哪个服务器都没有关系。您也可以将端口更改为 80,因为该端口上没有启动服务(即关闭 apache 或 nginx)
    • 您是否尝试过从本地网络上的另一台计算机访问它?如果这可行,但您无法从网络外部访问它,则您的路由器上的端口转发可能存在问题。
    • @jonmorgan:我尝试将另一台机器连接到同一个路由器,但它看不到它。在这一点上,我不知道可能导致问题的原因......
    【解决方案2】:

    结帐本地隧道 http://progrium.com/localtunnel/

    它将为您提供一个可从外部访问的唯一 url。

    【讨论】:

    • 哇,太棒了!一开始它没有找到可用的端口,但它就像一个魅力。
    【解决方案3】:

    说实话,我不知道。可以确定的是我没有配置 任何防火墙。我在运行 ArchLinux 的机器上,所以我没有 认为其中涉及防火墙。

    要从防火墙外部快速启动并运行它,请考虑使用像 heroku 这样的 PaaS 提供商。

    【讨论】:

    • 不幸的是我不能。我需要做一些文件操作(涉及 virtualenvs),而 Heorku 的文件系统是只读的。我想我会选择专用服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 2015-11-04
    • 2014-09-30
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多