GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configurar y alojar una aplicación en el servidor web Apache en Linux

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

Nota: Los comandos discutidos en este artículo han sido probados en Ubuntu 20.04 LTS (fosa focal). Los mismos comandos también son válidos para la distribución Debian.

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 y cambie el valor de 80 a cualquier número que desee que Apache escuche. Por ejemplo, para cambiar el número de puerto a 9090 , la entrada se cambiaría a .

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/.


Ubuntu
  1. Cómo configurar un servidor web Apache

  2. Cómo instalar el servidor web Apache en CentOS 7

  3. Instale el servidor web Apache en Linux Mint 13 / Linux Mint 14

  4. Instale Nginx y configure el host virtual en Ubuntu 20.04

  5. Cómo instalar y configurar el servidor web Apache en Ubuntu 13.10

Cómo instalar y configurar el servidor web Apache en Ubuntu

Cómo alojar un sitio web en un servidor web Apache

Cómo instalar y configurar el servidor Apache SVN en el escritorio de Linux

Cómo instalar y configurar el servidor web Apache en Oracle Linux 8

Cómo instalar y configurar un servidor web LAMP en Ubuntu 18.04

Cómo instalar y configurar un servidor Linux Ubuntu NFS