新增 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 位址和/或連接埠。

相關內容