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 gran cantidad de características, algunas de las cuales no están actualmente presentes 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 se desempeña el papel especial por archivos .htaccess, que pueden alterar las configuraciones del servidor web específicas de los directorios webroot.

De forma predeterminada, al servidor web Apache se le indica que escuche la conexión entrante y se enlace en el puerto 80 . Si opta por la configuración TLS, el servidor escuchará las conexiones seguras en el puerto 443 .

Para instruir al servidor web Apache para que 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 puerto nuevo para futuros enlaces.

En el sistema basado en Debian/Ubuntu , el archivo de configuración que debe modificarse está en /etc/apache2/ports.conf y en el archivo RHEL/CentOS Las 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 extracto a continuación.

# 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 muestra en la imagen de abajo.

Listen 8081

Después de agregar 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 enlace, específico para sus propios requisitos de vhost.

En las distribuciones CentOS/RHEL , el cambio se aplica directamente al host virtual predeterminado. En la siguiente muestra, 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 imagen de abajo.

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

Finalmente, para aplicar los cambios y hacer que Apache se una 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 la escucha debe mostrarse en la tabla de red del servidor.

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

También puede abrir un navegador y navegar a la dirección IP de su servidor o al nombre de dominio en el puerto 8081 . La página predeterminada de Apache se debe mostrar en el navegador. Sin embargo, si no puede navegar por la página web, vuelva 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 basada en CentOS/RHEL , instale el paquete policycoreutils para agregar las reglas de SELinux necesarias para que Apache se enlace en el nuevo puerto y reinicie el servidor HTTP de Apache para aplicar los cambios.

# yum install policycoreutils

Agregue las 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 verificar si el nuevo puerto se enlaza con éxito y escuche 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.