Cómo cambiar el puerto HTTP de Apache en Linux


El servidor HTTP Apache es uno de los servidores web más utilizados en Internet en la actualidad, debido a su flexibilidad, estabilidad y una pléyade de características, algunas de las cuales no están por el momento presentes en otros servidores web, como su rival Nginx.

Algunas de las características más importantes de Apache incluyen la capacidad de cargar y ejecutar diferentes tipos de módulos y configuraciones especiales en tiempo de ejecución, sin detener realmente el servidor o, peor aún, compilar el software cada vez que se agrega un nuevo módulo y se juega el papel especial. por archivos .htaccess, que pueden alterar las configuraciones del servidor web específicas de los directorios webroot.

De forma predeterminada, el servidor web Apache recibe instrucciones de escuchar la conexión entrante y vincularse en el puerto 80. Si opta por la configuración TLS, el servidor escuchará las conexiones seguras en el puerto 443.

Para indicar al servidor web Apache que se vincule y escuche el tráfico web en otros puertos que no sean los puertos web estándar, debe agregar una nueva declaración que contenga el nuevo puerto para futuras vinculaciones.

En el sistema basado en Debian/Ubuntu, el archivo de configuración que debe modificarse es el archivo /etc/apache2/ports.conf y en las distribuciones basadas en RHEL/CentOS, edite el archivo /etc/httpd/conf/httpd.conf.

Abra el archivo específico para su propia distribución con un editor de texto de consola y agregue la nueva declaración de puerto como se muestra en el siguiente extracto.

# nano /etc/apache2/ports.conf     [On Debian/Ubuntu]
# nano /etc/httpd/conf/httpd.conf  [On RHEL/CentOS]

En este ejemplo, configuraremos el servidor HTTP Apache para que escuche las conexiones en el puerto 8081. Asegúrese de agregar la siguiente declaración en este archivo, después de la directiva que indica al servidor web que escuche en el puerto 80, como se ilustra en la imagen de abajo.

Listen 8081

Una vez que haya agregado la línea anterior, debe crear o modificar un host virtual Apache en una distribución basada en Debian/Ubuntu para iniciar el proceso de vinculación, específico para sus propios requisitos de vhost.

En las distribuciones de CentOS/RHEL, el cambio se aplica directamente al host virtual predeterminado. En el siguiente ejemplo, modificaremos el host virtual predeterminado del servidor web y le indicaremos a Apache que escuche el tráfico web desde el puerto 80 al puerto 8081.

Abra y edite el archivo 000-default.conf y cambie el puerto a 8081 como se muestra en la siguiente imagen.

# nano /etc/apache2/sites-enabled/000-default.conf 

Finalmente, para aplicar cambios y hacer que Apache se vincule en el nuevo puerto, reinicie el demonio y verifique la tabla de sockets de red local usando el comando netstat o ss. El puerto 8081 en escucha debe mostrarse en la tabla de red de su servidor.

# systemctl restart apache2
# netstat -tlpn| grep apache
# ss -tlpn| grep apache

También puede abrir un navegador y navegar hasta la dirección IP de su servidor o el nombre de dominio en el puerto 8081. La página predeterminada de Apache debe mostrarse en el navegador. Sin embargo, si no puede navegar por la página web, regrese a la consola del servidor y asegúrese de que las reglas de firewall adecuadas estén configuradas para permitir el tráfico del puerto.

http://server.ip:8081 

En la distribución de Linux basada en CentOS/RHEL, instale el paquete policycoreutils para agregar las reglas SELinux necesarias para que Apache se vincule en el nuevo puerto y reinicie el servidor HTTP Apache para aplicar los cambios.

# yum install policycoreutils

Agregue reglas de Selinux para el puerto 8081.

# semanage port -a -t http_port_t -p tcp 8081
# semanage port -m -t http_port_t -p tcp 8081

Reinicie el servidor web Apache

# systemctl restart httpd.service 

Ejecute el comando netstat o ss para verificar si el nuevo puerto se enlaza correctamente y escucha el tráfico entrante.

# netstat -tlpn| grep httpd
# ss -tlpn| grep httpd

Abra un navegador y navegue hasta la dirección IP de su servidor o el nombre de dominio en el puerto 8081 para verificar si el nuevo puerto web es accesible en su red. La página predeterminada de Apache debe mostrarse en el navegador

http://server.ip:8081 

Si no puede navegar a la dirección anterior, asegúrese de agregar las reglas de firewall adecuadas en la tabla de firewall de su servidor.