Configurando servicio Apache con VirtualHost en CentOS 7/AlmaLinux/Rocky Linux
El Proyecto Apache HTTP Server es un esfuerzo de desarrollo de software colaborativo destinado a crear una implementación de código fuente robusta, comercial, funcional y de libre acceso de un servidor HTTP (Web). En Elástika podrás configurar el servicio para implementar tus sitios webs.
Para iniciar debe abrir un terminal y escribir el siguiente comando:
yum install httpd
Posteriormente debemos iniciar el servicio:
systemctl start httpd
Para no repetir la línea anterior cada vez que se haya reiniciado el sistema, debes ingresar el siguiente comando:
systemctl enable httpd
Una vez terminada la configuración, tenemos que averiguar qué IP posee mi servidor. Para eso podemos ejecutar los siguientes comandos, y debemos elegir uno:
ifconfig
hostname –i
Ten en cuenta que se debe permitir el tráfico web en el servidor. esta configuración se realiza a través de Iptables, es por ello que se debe abrir el archivo de configuración y agregar lo siguiente:
Ruta de configuración: /etc/sysconfig/iptables
Y escribir al final del archivo antes de COMMIT:
#permitir trafico web
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Luego procede a reiniciar el servicio:
service iptables restart
El el caso de utiliza FirewallD en vez de iptables, ejecutar los siguientes comandos:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Para comprobar la correcta instalación colocamos la siguiente línea en un navegador:
Los comandos para monitorear el estado de los puertos del servidor se muestran a través de la aplicación netstat. Esta nos ayudará a comprobar el estado correcto del servicio a través de sus puertos. Tener presente que el resultado se mostrará siempre y cuando se haya buscado el sitio web por un navegador.
netstat –a –n | grep :80
netstat –a –n | grep :443
netstat –a –n | grep :http
netstat –a –n | grep :https
netstat –a –n | grep IPdelServidor:80
Creando sitios webs en nuestro servidor
Para generar el contenido, debes crear la ruta de almacenamiento del sitio web. Para ello procederemos a ejecutar las siguientes líneas desde la raíz /:
Directorio donde se almacenará tu sitio web:
mkdir -p /var/www/example.com/public_html
Directorio donde se almacenarán los errores en archivos logs:
mkdir -p /var/www/example.com/logs
Dentro de la ruta /var/www/example.com/logs se realiza la creación de los archivos error.log y requests.com
Luego ingresamos al directorio public_html y creamos el Archivo principal del sitio web.
cd /var/www/example.com/public_html
vi index.html
El siguiente contenido es básico y de prueba para asegurarnos que el servicio web esté funcionando de manera correcta. Para ello es necesario agregar en el archivo index.html las siguientes líneas:
<html>
<head>
<title>Página de ejemplo</title>
</head>
<body>
<h1> Presentamos el primer host virtual </h1>
<h2> Procede del dominio example.com </h2>
</body>
</html>
Personalizamos la configuración de los sitios webs
A través del archivo de configuración httpd.conf realizamos los cambios necesarios paranuestro sitio web:
vi /etc/httpd/conf/httpd.conf
Abrimos el archivo con la aplicación vim y escribimos : set number, y presionamos ENTER. Luego ubicamos la línea 276 y reemplazamos esa información con nuestro propio nombre de server.example.com:80. Además, en la línea 990 reemplazamos la información por la IP del servidor (192.168.1.111).
Linea 276 sobre CentOS
ServerName server.example.com:80
Línea 990 sobre CentOS
NameVirtualHost 192.168.1.111
Para concretar el uso de varios dominios en nuestro servidor nos dirigimos al final del archivo en la línea 1003. Allí ubicamos VirtualHost y retiramos el signo # (almohadilla):
<VirtualHost 192.168.1.111>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html/
ServerName example.com
ErrorLog /var/www/example2.pe/error.log
CustomLog /var/www/example2.pe/requests.log common
</VirtualHost>
<VirtualHost 192.168.1.111>
ServerAdmin web@example2.pe
DocumentRoot /var/www/example2.pe/public_html
ServerName example2.pe
ServerAlias www.example2.pe
ErrorLog /var/www/example2.pe/error.log
CustomLog /var/www/example2.pe/requests.log common
</VirtualHost>
Recuerda que al finalizar algún cambio en el archivo de configuración httpd.conf debes reiniciar el servicio mencionado:
systemctl restart httpd
Hecho esto, felicidades. Has podido configurar el servidor con el servicio httpd y virtualhost.