Búsqueda de sitios web

Cómo cambiar el puerto HTTP de Apache en Linux


El servidor Apache HTTP es uno de los servidores web más utilizados en Internet hoy en día, debido a su flexibilidad, estabilidad y una multitud de características, algunas de las cuales no están presentes por el momento en otros servidores web, como 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 desempeña un 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 conectarse al puerto 80. Si opta por la configuración TLS, el servidor escuchará conexiones seguras en el puerto 443.

Para indicarle al servidor web Apache que se vincule y escuche el tráfico web en otros puertos además de los puertos web estándar, debe agregar una nueva declaración que contenga el nuevo puerto para enlaces futuros.

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

Abra el archivo específico de 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 Apache HTTP para escuchar 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 a continuación.

Listen 8081

Después de haber agregado la línea anterior, necesita 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 distribuciones CentOS/RHEL, el cambio se aplica directamente en el host virtual predeterminado. En el siguiente ejemplo, modificaremos el host virtual predeterminado del servidor web e 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 los cambios y hacer que Apache se vincule al nuevo puerto, reinicie el demonio y verifique la tabla de sockets de la red local usando netstat o el comando ss. El puerto 8081 en escucha debe aparecer 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 debería 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 estén configuradas las reglas de firewall adecuadas para permitir el tráfico del puerto.

http://server.ip:8081 

En una distribución de Linux basada en CentOS/RHEL, instale el paquete policycoreutils para agregar las reglas SELinux requeridas para que Apache se enlace en el nuevo puerto y reinicie el servidor Apache HTTP 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 netstat o el comando ss para comprobar si el nuevo puerto se vincula 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 se puede acceder al nuevo puerto web en su red. La página predeterminada de Apache debe aparecer 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.