Apache y Nginx los servidores web mas usados en la web de hoy dia, cada uno con sus ventajas y desventajas ( Este no sera un post para nombrarlas ).
Este tutorial es para cuando la necesidad de poder hostear mas de un site en un mismo servidor y necesitamos que cada uno responda a un dominio distinto, el proceso es bien simple y facil.
Apache
Los archivos vhost estan situados en directorios distintos segun el sistema operativo:
Vhost File
- Si estan usando wamp estan en la caperta bin/apache/conf/extras/vhost
- Ubuntu, /etc/apache2/site-avaliable
- centos /etc/httpd/conf.d
Conf file
- Si estan usando wamp estan en la caperta bin/apache/conf/httpd.conf
- Ubuntu, /etc/apache2/httpd.conf
- Centos /etc/httpd/conf/httpd.conf
Una vez localizados estos archivos es necesario comprobar algunas configuraciones
- Asegurar que no este comentado esta opacion Include conf.d/*.conf
- Asegurar que esta opcion no este comentada tampoco NameVirtualHost *:80
Luego de haber configurado nuestro http.conf y localizado donde colocar los vhost files proceder a crearlos.
Ejemplo 1:
Este vhost servira para cuando accedan a dominio.com el projecto a mostrar seria el de la carpeta /carpeta_to_projecto/
Listen 80
<VirtualHost *:80>
DocumentRoot /carpeta_to_projecto/
ServerName dominio.com
</VirtualHost>
Ejemplo 2:
Con este ejemplo podran hacer lo mismo que en el anterior con la salvedad de que este si identifica los enlaces simbolicos ( FollowSymLinks ) y les permitiras listar los archivos de una carpeta ( Options Indexes ),la opcion de AllowOverride all es muy usada por muchos frameowrks php para crear sus rutas si esta ocion no existe su framework no podra funcionar chevere.
Listen 80
<VirtualHost *:80>
DocumentRoot /var/www/test_project/
ServerName projecto.com
<Directory /var/www/test_project>
AllowOverride all
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
Luego de crear sus vhost files es cuestion de reiniciar el servicio de apache y todo estara funcionando (Si todo le sale bien).
**Los vhost files deben guardarce con extencion .conf sino apache no sabra que son vhost.conf
Nginx
Los archivos vhost en nginx esta situados en /etc/nginx/conf.d/ a menos que estes en uguntu estaran en /etc/nginx/sites-available/ (Tenia que ser un ubuntu :/ ).
Ejemplo 1:
El atributo location es muy usado para algunos frameworks que necesitan ubicar la direccion de los archivos estaticos (.js/.css/.imgs).
server {
listen 80;
root /var/www/projecto;
index index.html index.htm;
server_name 54.196.254.224;
location / {
try_files $uri $uri/ =404;
}
}
Referencia Nginx
Referencia Apache