entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Lo que me gustaría es poder montar los servidores virtuales independientes con un nombre de dominio

Entiendo que deberia tener dicha configuración en apache:
/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.4 centos7

##como servidores virtuales...
192.168.1.4     serv01.loc
192.168.1.4     serv02.loc
192.168.1.4     serv03.loc

/etc/httpd/httpd.conf


ServerRoot "/etc/httpd"

Listen 192.168.1.4:80

Include conf.modules.d/*.conf

User apache
Group apache

ServerAdmin [email protected]

ServerName centos7:80

<Directory >
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>

    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on

IncludeOptional conf.d/*.conf

<VirtualHost serv01.loc:80>
    ServerName serv01loc
    DocumentRoot "/var/www/serv01/"
    <Directory "/var/www/ser01">
        allow from all
        Options None
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost centos7:80>
    ServerName centos7
    DocumentRoot "/var/www/"
    <Directory "/var/www/">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost serv02.loc:80>
    ServerName serv02
    DocumentRoot "/var/www/serv02"
    <Directory "/var/www/serv02">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost serv03.loc:80>
    ServerName serv03
    DocumentRoot "/var/www/serv03"
    <Directory "/var/www/serv03">
        Options Indexes FollowSymLi
...

en windows el servidor dns esta de esta forma...

serv01.loc da ping 192.168.1.4
serv02.loc da ping 192.168.1.4
serv03.loc da ping 192.168.1.4

nslookup también...

Mi problema no se si se la configuración de apache, que me lleva siempre al primer serv01.loc cuando escribo serv02.loc, o serv03.loc al escribir la ruta en el explorador, tratenme bien soy nuevo en centos, gracias. poe leer
¿Alguna sugerencia?, muchas gracias de antemano....

2 Respuestas

3votos

bl4z3r Puntos16850

No estoy seguro del planteo que voy a realizarte pero capaz pueda orientarte en lo que necesitas.

Por lo general, los NICs (Network Interface Controller) soportan virtualizacion de direcciones a través de software, lo cual te habilita para poder asignar una IP única dentro de la misma red a cada maquina virtual. Esto lo tengo entendido por que, cito por la ocasión, VirtualBox tiene la capacidad de anexar el NIC virtual del sistema invitado en el sistema servidor a través de la emulación. Un ejemplo de esto seria algo como:

NIC 1 -> X.X.X.1 (IP física)                         -> serv01.loc
                             -> X.X.X.2 (IP virtual) -> serv02.loc
                             -> X.X.X.3 (IP virtual) -> serv03.loc

Te lo digo esto para que puedas tener mas libertad para manejar los servidores.

Ahora, si no tenes disponible mas IP en la red, tendrías que delegar resolver los nombres al Apache Web Server cada vez que recibe un Request. Te quedaria algo como esto:

NIC 1 -> X.X.X.1 -> serv01.loc -> Apache: serv01.loc:80
                 -> serv02.loc -> Apache: serv02.loc:80
                 -> serv03.loc -> Apache: serv03.loc:80

Por lo que veo, el DNS resuelve bien ya que te devuelve la misma IP. Seguramente el problema sea de Apache, que no sabe a que parte redireccionar internamente.

3votos

mau_restor comentado

Si tenias razón lo resolvi de esta forma al recibir la consulta desde el DNS que estaba correctamente configurado y apache debe escuchar en su dirección asignada.

Lo que pasó es que debo asignar un nombre a la ip y apache direcciona correctamente a dicha dirección, ojo siempre va a mostrar http://localhost el primer virtualhost escrito en este caso el server02.loc y así sucesivamente.

No usar .local porque avahi tiene un bug de direccionamiento ojo no usar en servidores virtuales las terminaciones *.local

archivo hosts

...

192.168.1.4 server01.loc
192.168.1.4 server02.loc

...

Configuración Apache httpd.conf


Listen 192.168.1.4:80
ServerName 192.168.1.4:80

<VirtualHost *:80>
    ServerName server02.loc
    DocumentRoot "/var/www/server02"
    <Directory "/var/www/server02">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName server01.loc
    DocumentRoot "/var/www/server01"
    <Directory "/var/www/server01">
        #allow from all
        #Options None
        #Require all granted
    </Directory>
</VirtualHost>

etc...
sudo systemctl httpd restart

#Por las dudas refrescar las DNS
sudo systemctl avahi-daemon restart

2votos

carlossevi Puntos63580

Sin hacer pruebas ni tener acceso al entorno no estoy seguro de si esta es la respuesta correcta, pero me parece que en la definición del VirtualHost (fichero httpd.conf) te falta el nivel superior en el nombre del dominio:

<VirtualHost serv02:80>
    ...
</VirtualHost>

debería ser

<VirtualHost serv02.loc:80>
    ...
</VirtualHost>

1voto

mau_restor comentado

Una disculpa estaba mal escrita mi configuración de servidor, esos parametros estan bien, ya lo he editado.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta