En nuestro artículo anterior, “Cómo instalar el servidor web Apache en Linux”, explicamos cómo instalar Apache en una máquina Linux. Ahora, en este artículo, seguiremos con la configuración básica de Apache que incluirá
- Permitir el tráfico de Apache a través del cortafuegos
- Gestión de los servicios de Apache
- Configuración de servidores virtuales en Apache
- Configure Apache para escuchar en un puerto diferente
- Permitir/Denegar el acceso desde direcciones IP específicas
Requisitos
- Sistema Ubuntu 20.04
- Usuario con privilegios sudo
- Un servidor web Apache instalado
Permitir el tráfico de Apache a través del cortafuegos
Si un firewall está habilitado en su sistema operativo, deberá permitir el tráfico de Apache a través de él. El servidor Apache por defecto escucha en el puerto 80 para HTTP y 443 para https. Para permitir el tráfico HTTP (puerto 80) a través del firewall, ejecute el siguiente comando en la Terminal:
$ sudo ufw allow 'Apache'
Para permitir el tráfico HTTPS (puerto 443) a través del firewall, ejecute el siguiente comando en la Terminal:
$ sudo ufw allow 'Apache Secure'
Para permitir el tráfico HTTP (puerto 80) y HTTPS (puerto 443) a través del firewall, ejecute los siguientes comandos en la Terminal:
$ sudo ufw allow 'Apache Full'
Gestión de los servicios de Apache
Después de la instalación, el servicio Apache comienza a ejecutarse automáticamente en segundo plano. Para ver el estado del servicio de Apache, emita el siguiente comando en la Terminal:
$ systemctl status apache2
En el siguiente resultado, activo (en ejecución) el estado muestra que el servicio de Apache está activo y funcionando sin problemas.
Para iniciar manualmente el servicio Apache, use el siguiente comando:
$ sudo systemctl start apache2
Para permitir que el servicio de Apache se inicie automáticamente al inicio/arranque, use el siguiente comando:
$ sudo systemctl enable apache2
Para reiniciar el servicio Apache, use el siguiente comando:
$ sudo systemctl restart apache2
Para detener el servicio de Apache, use el siguiente comando:
$ sudo systemctl stop apache2
Configuración de servidores virtuales en Apache
El host virtual en Apache le permite ejecutar varios sitios web desde un solo servidor web Apache. En la siguiente sección, configuraremos un host virtual para nuestro dominio "test.org". Para múltiples dominios, siga los mismos pasos para cada dominio.
Paso 1:crea un directorio para tu dominio
El primer paso será crear un directorio para su dominio. Si necesita alojar varios dominios, cree directorios separados para cada dominio. Para nuestro dominio test.org , crearemos el directorio con el siguiente comando:
$ sudo mkdir /var/www/test.org
Asegúrese de reemplazar test.org con su nombre de dominio.
Paso 2:Establecer la propiedad y los permisos
El directorio de nuestro dominio actualmente es propiedad del usuario root. Para permitir que otros usuarios modifiquen los archivos, necesitaremos cambiar la propiedad del directorio. Use el siguiente comando en la Terminal para hacerlo:
$ sudo chown -R $USER:$USER /var/www/ test.org
Además, establezca los permisos necesarios en el directorio del dominio. El 755 en el siguiente comando asigna permisos de lectura y ejecución a todos, mientras que los permisos de lectura, escritura y ejecución son para el propietario del archivo.
$ sudo chmod -R 755 /var/www/ test.org
Paso 3:Crea una página index.html de muestra para tu dominio
Ahora cree una muestra index.html página para que su dominio sirva algún contenido. Cree un archivo index.html en el /var/www/test.org directorio.
Estamos usando el editor Nano para este propósito:
$ sudo nano /var/www/test.org/index.html
Agregue el siguiente contenido en el archivo.
<html> <head> <title>Your test.org server block is up!</title> </head> <body> <h1>This is a test page for test.org website!</h1> </body> </html>
Una vez que haya terminado con la edición, guarde y cierre el index.html archivo.
Ahora el ejemplo index.html se ha creado una página para nuestro sitio.
Paso 4:Cree un nuevo archivo de host virtual
En Apaches, hay un archivo de host virtual predeterminado que contiene configuraciones para el servidor web predeterminado. Para nuestro dominio test.org , crearemos un archivo de host virtual separado.
Ejecute el siguiente comando en Terminal para crear el archivo de host virtual para su dominio:
$ sudo nano /etc/apache2/sites-available/test.org.conf
Agregue el siguiente contenido en el archivo.
<VirtualHost *:80>
ServerAdmin [email protected] ServerName test.org ServerAlias www.test.org DocumentRoot /var/www/test.org/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Asegúrese de reemplazar test.org con su propio nombre de dominio.
Una vez que haya terminado con la edición, guarde y cierre el archivo.
Paso 5:habilite el archivo de host virtual
Ahora habilitaremos el archivo de host virtual que hemos creado en el paso anterior. Ejecute el siguiente comando en la Terminal para hacerlo:
$ sudo a2ensite test.org.conf
No estamos utilizando el archivo de host virtual predeterminado, por lo que podemos desactivarlo. Use el siguiente comando para deshabilitarlo:
$ sudo a2dissite 000-default.conf
Ahora recarga las configuraciones de Apache usando el siguiente comando:
$ systemctl reload apache2
Paso 6:configurar el archivo de hosts (opcional)
Si no tiene un nombre de dominio real y solo desea probar el procedimiento utilizando cualquier dominio de prueba, deberá agregar una entrada para su dominio en /etc/hosts archivo.
Edite el /etc/hosts archivo usando el siguiente comando en Terminal:
$ sudo nano /etc/hosts
Agregue la siguiente entrada en este archivo reemplazando el server_IP y nombre_de_dominio con la dirección IP y nombre de dominio de tu entorno.
server_IP domain_name
En nuestro ejemplo, la entrada sería:
192.168.72.157 test.org
Ahora guarde y cierre el archivo /etc/hosts.
Paso 6:prueba de errores
Ahora pruebe las configuraciones de Apache en busca de errores. Use el siguiente comando para hacerlo:
$ sudo apache2ctl configtest
Si todo está bien, la Sintaxis será correcta. mensaje en la salida. También puede ver el siguiente mensaje de advertencia en el resultado de la prueba.
Para suprimir este mensaje, agregue ServerName directiva en /etc/apache2/apache2.conf archivo.
Edite el /etc/apache2/apache2.conf archivo usando el siguiente comando en la Terminal:
$ sudo nano /etc/apache2/apache2.conf
Agregue la siguiente entrada en el archivo reemplazando test.org con su nombre de dominio:
ServerName test.org
Guarde y cierre el archivo.
Nuevamente, pruebe Apache en busca de errores de configuración. Ahora verá que la advertencia se ha eliminado.
Paso 7:Pruebe si Apache está sirviendo su nombre de dominio
Ahora, pruebe la configuración navegando a la siguiente dirección en la barra de direcciones de su navegador web.
http://domain_name
En nuestro ejemplo, sería:
http://test.org
La siguiente página indica que el host virtual se configuró correctamente y Apache está sirviendo nuestro nombre de dominio.
Configure Apache para escuchar en un puerto diferente
De forma predeterminada, Apache escucha el tráfico web en el puerto 80. Hay algunos casos en los que es posible que deba cambiar el puerto de Apache, como cuando algún otro servicio ya está escuchando en el puerto 80, el ISP ha bloqueado el puerto 80 o desea evitar el puerto 80. ataques Sin embargo, recuerde que después de cambiar el puerto predeterminado, debe apuntar los navegadores al nuevo puerto como http://domain_name:port_nmuber.
1. Edite el /etc/apache2/ports.conf archivo usando el siguiente comando:
$ sudo nano /etc/apache2/ports.conf
Esta es la vista predeterminada de ports.conf archivo donde se puede ver el puerto 80 configurado como puerto por defecto.
Cambie este número de puerto a cualquier otro valor que desee que escuche el servidor Apache.
Guarde y cierre el archivo ports.conf una vez que haya terminado con la edición.
2. Ahora, deberá configurar su host virtual para escuchar en el nuevo puerto. Para editar el archivo de host virtual, utilice el siguiente comando en la Terminal:
$ sudo nano /etc/apache2/sites-avaialble/test.org.conf file
En el comando anterior, asegúrese de reemplazar test.org.conf con su nombre de archivo de host virtual.
Busque la entrada
Nota :para establecer un número de puerto, elija un valor con un rango de 1024 a 65535.
Una vez hecho esto, guarde y cierre el archivo.
Apache también se puede configurar para escuchar en múltiples puertos. Por ejemplo, para configurar los puertos 80 y 9090 como puertos de escucha, agregue las siguientes entradas en /etc/apache2/ports.conf archivo:
Listen 80 Listen 9090
También en /etc/apache2/sites-avaialble/test.org.conf archivo, agregue una entrada de la siguiente manera:
<VirtualHost *:80 *:9090>
Una vez que haya terminado, reinicie el servicio Apache usando el siguiente comando en la Terminal:
$ sudo systemctl restart apache2
Permitir/Denegar el acceso desde direcciones IP específicas
En la siguiente sección, veremos cómo permitir/denegar el acceso a direcciones IP específicas a nuestro sitio. Usaremos el archivo .htaccess para este propósito.
Paso 1:habilitar apache .htaccess
Primero, necesitaremos habilitar el archivo .htaccess. Para hacerlo, emita el siguiente comando en la Terminal:
$ sudo nano /etc/apache2/sites-available/test.org.conf
Después del bloque VirtualHost, agregue las siguientes líneas en el archivo:
<Directory /var/www/html/example.com/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Ahora guarde el archivo y reinicie apache usando el siguiente comando:
$ sudo systemctl apache2 restart
Paso 2:Crear archivo .htaccess
Ahora necesitaremos crear el archivo .htaccess. Navegue hasta el directorio raíz del host virtual.
$ cd /var/www/test.org
Luego crea el archivo .htaccess aquí usando el siguiente comando:
$ sudo nano .htaccess
Paso 3:permitir/denegar direcciones IP
Para negar ciertas direcciones IP accedan a su sitio web, deberá agregar entradas en el archivo .htaccess de la siguiente manera:
order deny, allow # To deny IP address 192.168.9.8 allow from 192.168.9.8 # To deny all IP addresses from 192.168.9.0 to 192.168.9.255 allow from 192.168.9 To allow For this purpose, IP addresses from accessing your website, you will need to add entries in the .htaccess file in the following way:
order deny, allow # To deny all IP addresses Deny from all # It will allow the IP address 192.168.9.30 allow from 192.168.9.30 # It will allow all IP addresses from 192.168.9.0 through 192.168.9.255
allow from 192.168.9
¡Eso es todo! En este artículo, ha aprendido los conceptos básicos de las configuraciones de Apache en Linux. Esto incluye la configuración del cortafuegos, la gestión de los servicios de Apache, la configuración de hosts virtuales, el cambio de los puertos de escucha predeterminados y la autorización o denegación del acceso de direcciones IP específicas a los sitios. Para obtener más información sobre las configuraciones de Apache, visite la documentación oficial del servidor Apache en http://httpd.apache.org/docs/.