Django サイトを追加すると CentOS 7 の仮想ホストが壊れる

Django サイトを追加すると CentOS 7 の仮想ホストが壊れる

私はCentOS 7 サーバー約20のドメインがすべて自動管理されており、/etc/httpd/conf.d の vhosts ファイル

私は学ぶことをしようとしていますジャンゴそして、それを使用して単一のドメインをセットアップしたかったので、.conf ファイルに特定の仮想ホストを追加しました。

結果、Djangoドメインは正常に動作しますが、他のサイトはすべて壊れている(Django を使用しようとしますが、エラーが発生します)。

Djangoドメインには2 つのフォルダー: djangodomain.com静的ファイルの場合djangoドメイン.appPython ファイル用。

既存の複数ドメインの仮想ホスト設定に単一の 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 アドレスとポートに結合することはできません。 を実行して、Apache がその設定について実際にどう考えているかを確認できます。ServerNameServerAliasapachectl -S

デフォルトの仮想ホストへのアクセスに使用される 20 個のドメイン名をすべて知っていると仮定すると、解決策はServerName/を使用してそれらをすべてリストすることですServerAlias。知らない場合は、たとえば、新しいドメイン名を別の IP アドレスやポートに隔離することができます。

関連情報