
tengo unServidor CentOS 7con alrededor de 20 dominios, todos administrados automáticamente con unarchivo vhosts en /etc/httpd/conf.d.
estoy intentando aprenderDjangoy quería configurar un único dominio usándolo, así que agregué un host virtual específico al archivo .conf.
El resultado es que el dominio Django funciona bien perotodos los demás sitios están rotos(Intenta usar Django pero provoca errores).
El dominio Django tienedos carpetas: dominiodjango.compara archivos estáticos ydominiodjango.aplicaciónpara los archivos de Python.
¿Cómo puedo integrar un único dominio Django en mi configuración de host virtual de muchos dominios existente?
Vhosts.conf existentes:
<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>
Lo que agregué que rompió todo menos el sitio de 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>
[actualización: problema resuelto] Publicado cruzado enIntercambio de pila
Respuesta1
No puede combinar un servidor VirtualHost
en la misma dirección IP y puerto sin ninguna ServerName
configuración ServerAlias
con uno que sí los tenga. Puede ejecutar apachectl -S
para ver qué piensa realmente Apache sobre esa configuración.
Suponiendo que conoce los 20 nombres de dominio utilizados para acceder a su host virtual predeterminado, la solución es simplemente enumerarlos todos allí usando ServerName
/ ServerAlias
. Si no lo hace, puede, por ejemplo, secuestrar el nuevo en una dirección IP y/o puerto diferente.