【问题标题】:Deploying subdomain under flask and apache2在flask和apache2下部署子域
【发布时间】:2015-05-27 08:04:35
【问题描述】:

您好,我正在我的主域“qianshan.co”下部署一个子域。当我在浏览器地址栏输入子域“m.qianshan.co”时,就出现了我项目的文件目录……(好尴尬)

我遵循了几个关于 Digital Ocean 的教程,但没有奏效。 __init__.py 和虚拟主机配置一定有问题。太赞了!

错误:进入子域并显示远程项目目录:

这是我的代码和目录:

  1. 初始化.py

  1. 虚拟主机目录

  1. 主域虚拟主机配置

    <VirtualHost *:80>
            ServerName qianshan.co
            ServerAdmin spark@qianshan.co
            WSGIScriptAlias / /var/www/qianshan/qianshan.wsgi
            <Directory /var/www/qianshan/>
                    Order allow,deny
                    Allow from all
            </Directory>
            Alias /static /var/www/qianshan/static
            <Directory /var/www/qianshan/static/>
                    Order allow,deny
                    Allow from all
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  2. 子域的虚拟主机配置

    <VirtualHost *:80>
            ServerName m.qianshan.co
            ServerAdmin spark@qianshan.co
            DocumentRoot /var/www/qianshan
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  3. DNS 配置

【问题讨论】:

    标签: python apache flask virtualhost


    【解决方案1】:

    这似乎不是 Flask 问题。

    您已使用所需的所有参数定义了基本虚拟主机,但您忘记将它们全部复制到其他 VH 配置中。

    尝试配置 m.子域作为主域:

    <VirtualHost *:80>
            ServerName m.qianshan.co
            ServerAdmin spark@qianshan.co
            WSGIScriptAlias / /var/www/qianshan/qianshan.wsgi
            <Directory /var/www/qianshan/>
                    Order allow,deny
                    Allow from all
            </Directory>
            Alias /static /var/www/qianshan/static
            <Directory /var/www/qianshan/static/>
                    Order allow,deny
                    Allow from all
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    Apache 中的每个 VH 都是一个单独的实体。它们仅共享在VirtualHost 指令外部定义的全局参数。

    【讨论】:

    • 嗨 Paolo,我按照上面的方法编辑了 VH 配置,当我在地址行中输入 m.subdomain 时,它会返回主域的索引页面。但实际上在我的 init.py 文件中,我希望服务器返回“开发中的千山移动网站”这句话。如何使子域返回与主域不同的索引页面?
    • 这是一个完全不同的问题。 :) 您有 2 个选择:(a) 使用位于另一条路径中的不同项目。 (b) 当您需要区分域名时检测域。使用request.host
    • Tks,我最初的目的实际上是区分主域和子域:为它们提供不同的索引页面。我会按照你的建议试试,谢谢。
    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 2016-12-08
    • 2021-05-27
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2015-11-21
    • 2021-01-24
    相关资源
    最近更新 更多