添加 Django 站点会破坏我在 CentOS 7 上的虚拟主机

添加 Django 站点会破坏我在 CentOS 7 上的虚拟主机

我有一个CentOS 7服务器大约有 20 个域,全部由/etc/httpd/conf.d 中的 vhosts 文件

我在尝试学习姜戈并想使用它设置单个域,因此我将特定的虚拟主机添加到 .conf 文件中。

结果是 Django 域工作正常,但是所有其他网站都已损坏(尝试使用Django但会导致错误)。

Django 域有两个文件夹: djangodomain.com对于静态文件和djangodomain.app对于 Python 文件。

如何将单个 Django 域集成到我现有的多域虚拟主机设置中?

现有的vhosts.conf:

<VirtualHost *:80>
    serveradmin [email protected]
    serveradmin [email protected]

    usecanonicalname off

    # www.site.com » site.com
    rewriteengine on
    rewritecond %{HTTP_HOST}    ^www\.(.*)$ [nc]
    rewriterule ^(.*)$          http://%1   [r=301,l]

    # file locations
    virtualdocumentroot "/home/username/%0"

    <directory "/home/username/*">
        allowoverride all
        require all granted
        options indexes followsymlinks
        options +execcgi
        options +includes
    </directory>
</VirtualHost>

我添加的内容破坏了除 Django 站点之外的所有内容:

<VirtualHost djangodomain.com:80>
    ServerName djangodomain.com
    ServerAlias www.djangodomain.com
    ServerAdmin [email protected]

    DocumentRoot /home/username/djangodomain.com

    WSGIScriptAlias / /home/username/djangodomain.app/django.wsgi

    <Directory /home/username/djangodomain.app>
        Order allow,deny
        Allow from all
    </Directory>

    Alias /robots.txt /home/username/djangodomain.com/robots.txt
    Alias /favicon.ico /home/username/djangodomain.com/favicon.ico
    Alias /images /home/username/djangodomain.com/images
    Alias /static /home/username/djangodomain.com/static

    ErrorLog /home/username/djangodomain.logs/error.log
    CustomLog /home/username/djangodomain.logs/access.log combined
</VirtualHost>

[更新:问题已解决]交叉发布到堆栈交换

答案1

您无法将没有任何设置VirtualHost的同一 IP 地址和端口与具有这些设置的 IP 地址和端口组合起来。您可以运行来查看 Apache 对该配置的实际想法。ServerNameServerAliasapachectl -S

假设您知道用于访问默认虚拟主机的所有 20 个域名,解决方案就是使用ServerName/列出所有域名ServerAlias。如果不这样做,那么您可以将新的 IP 地址和/或端口隔离到其他 IP 地址和/或端口。

相关内容