Hvordan endre Apache HTTP-port i Linux


Apache HTTP-serveren er en av de mest brukte nettserverne på internett i dag, og dens fleksibilitet, stabilitet og en rekke funksjoner, hvorav noen for øyeblikket ikke er tilstede i andre webservere, f.eks. rival Nginx.

Noen av de viktigste funksjonene til Apache inkluderer muligheten til å laste og kjøre forskjellige typer moduler og spesielle konfigurasjoner under kjøring, uten å faktisk stoppe serveren eller, enda verre, kompilere programvaren hver gang en ny modul mest legges til og den spesielle rollen spilles av .htaccess-filer, som kan endre webserverkonfigurasjoner som er spesifikke for webroot-kataloger.

Som standard blir Apache-nettserveren bedt om å lytte etter innkommende tilkobling og binde på port 80. Hvis du velger TLS-konfigurasjonen, vil serveren lytte etter sikre tilkoblinger på port 443.

For å instruere Apache-nettserveren til å binde og lytte etter nettrafikk på andre porter enn standard nettporter, må du legge til en ny setning som inneholder den nye porten for fremtidige bindinger.

I Debian/Ubuntu-basert system er konfigurasjonsfilen som må endres /etc/apache2/ports.conf-filen og på RHEL/CentOS-basert distribusjoner redigere /etc/httpd/conf/httpd.conf fil.

Åpne filen som er spesifikk for din egen distribusjon med en konsolltekstredigerer og legg til den nye portsetningen som vist i utdraget nedenfor.

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

I dette eksemplet konfigurerer vi Apache HTTP-serveren til å lytte på tilkoblinger på port 8081. Sørg for at du legger til setningen nedenfor i denne filen, etter direktivet som instruerer webserveren til å lytte på port 80, som illustrert i bildet nedenfor.

Listen 8081

Etter at du har lagt til linjen ovenfor, må du opprette eller endre en virtuell Apache-vert i Debian/Ubuntu-basert distribusjon for å starte bindingsprosessen, spesifikt for dine egne vhost-krav.

I CentOS/RHEL-distribusjoner brukes endringen direkte til standard virtuell vert. I eksemplet nedenfor vil vi modifisere standard virtuell verten for nettserveren og instruere Apache om å lytte etter nettrafikk fra 80 port til 8081 port.

Åpne og rediger filen 000-default.conf og endre porten til 8081 som vist i bildet nedenfor.

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

Til slutt, for å bruke endringer og få Apache til å binde på den nye porten, start daemonen på nytt og sjekk tabellen for lokale nettverkskontakter ved å bruke netstat eller ss-kommando. Port 8081 i lytting skal vises i servernettverkstabellen.

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

Du kan også åpne en nettleser og navigere til serverens IP-adresse eller domenenavn på port 8081. Apache-standardsiden skal vises i nettleseren. Men hvis du ikke kan bla gjennom nettsiden, gå tilbake til serverkonsollen og sørg for at de riktige brannmurreglene er konfigurert for å tillate porttrafikk.

http://server.ip:8081 

Installer policycoreutils-pakken på CentOS/RHEL-basert Linux-distribusjon for å legge til de nødvendige SELinux-reglene for at Apache skal binde seg til den nye porten og starte Apache HTTP-serveren på nytt for å bruke endringer.

yum install policycoreutils

Legg til Selinux-regler for port 8081.

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

Start Apache webserver på nytt

systemctl restart httpd.service 

Utfør netstat- eller ss-kommando for å sjekke om den nye porten bindes og lytt etter innkommende trafikk.

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

Åpne en nettleser og naviger til serverens IP-adresse eller domenenavn på port 8081 for å sjekke om den nye nettporten er tilgjengelig i nettverket ditt. Apache-standardsiden skal vises i nettleseren

http://server.ip:8081 

Hvis du ikke kan navigere til adressen ovenfor, sørg for at du legger til de riktige brannmurreglene i serverbrannmurtabellen.