【问题标题】:Flask Subdomain with Heroku and Godaddy (SERVER_NAME issues)带有 Heroku 和 Godaddy 的 Flask 子域(SERVER_NAME 问题)
【发布时间】:2015-02-17 21:34:56
【问题描述】:

我正在尝试在烧瓶服务器上设置一个子域,该服务器有一个托管在 Heroku 上的服务器和一个托管在 GoDaddy 上的自定义域。我已经验证我的子域在本地工作。子域是我的应用程序中的一个单独的蓝图。我在烧瓶中的设置是:

blueprint = Blueprint('blueprint', __name__, template_folder="templates", subdomain="blueprint")

@blueprint.route('/')
def index():
    return "Hello Mate"

然后

app.config['SERVER_NAME'] = os.environ['MY_SERVER_NAME']
from blueprint.views import blueprint
    app.register_blueprint(blueprint)

在我的本地机器上,我在我的主机文件 (/etc/hosts) 中设置了一条自定义记录来测试子域。该文件包含以下条目:

127.0.0.1 virtual.local
127.0.0.1 blueprint.virtual.local

如果我导航到blueprint.virtual.local:5000,我会看到预期的结果(一个只显示Hello Mate 的页面。我相信这证明我的子域设置设置正确,至少在烧瓶中。

我将代码推送到我的 heroku 应用程序,这就是我开始遇到问题的地方。我的 heroku 网站以前有一个与之关联的自定义域。我首先为新子域添加一个条目。在终端中运行heroku domains 给了我:

=== myapp Domain Names
blueprint.mysite.com
www.mysite.com
myapp.herokuapp.com
mysite.com

我遇到的第一个问题是我只能在 heroku URL 或自定义域上查看我的网站。这是app.config['SERVER_NAME'](我设置它以使我的子域工作)链接到heroku URL 或我的自定义URL 的结果。当它设置为 heroku URL 时,我只能在访问该 URL 时看到该站点,当我转到我的自定义域时,我收到 404 错误。当我切换SERVER_NAME 的值时,情况正好相反。

第二个问题是我无法让我的子域在 Heroku 上使用 GoDaddy。在 GoDaddy 中,我创建了一条 CNAME 记录,将我的子域 (blueprint) 指向我的 heroku 站点 (myapp.herokuapp.com)。它是否正确?每当我访问自定义域 (blueprint.mysite.com) 上的子域时,都会收到 404 错误。我相信这与第一个问题有关,但我不确定。我是否缺少任何步骤?

关于正确设置它的任何建议,以便我可以在 Heroku 上使用 Flask 子域,托管在 GoDaddy 上的自定义域上?提前致谢!

【问题讨论】:

    标签: python heroku flask subdomain


    【解决方案1】:

    我怀疑您混淆了 Flask 蓝图和 Heroku 应用程序。一个烧瓶 app (以及它包含的 git 存储库,在这种情况下)是一个且只有一个 Heroku app (单个域,或 subdomian...但至关重要的是,只有一个其中)。

    Flask 蓝图是一种组织单个 Flask 应用程序的各个部分以更加模块化的方式。

    要在 awesome.darrellsilver.comsauce.darrellsilver.com 创建 Heroku 应用程序,您应该在两个独立的 Git 存储库中设置两个独立的 Flask 应用程序。

    【讨论】:

    • 有趣 - 那么内置 Flask 子域的用例是什么(如 stackoverflow.com/questions/11021691/…)?是不是它们很有用,但在 Heroku 上托管时却没有?
    • 试了一下,部署成功。
    【解决方案2】:

    不管怎样,当我在 Heroku 上使用 Flask 切换到 SSL 端点时,我遇到了 404 问题。我所要做的就是将 app.config“SERVER_NAME”从之前的“CUSTOMENDPOINTNAME.herokuapp.com”更改为新的“www.CUSTOMENDPOINTNAME.com”地址。

    【讨论】:

      猜你喜欢
      • 2020-08-01
      • 1970-01-01
      • 2014-02-18
      • 2012-11-16
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2012-11-08
      相关资源
      最近更新 更多