Kako promijeniti Apache HTTP port u Linuxu


Apache HTTP server je jedan od najčešće korištenih web servera na internetu danas, što doprinosi njegovoj fleksibilnosti, stabilnosti i mnoštvu karakteristika, od kojih neke trenutno nisu prisutne na drugim web serverima, kao npr. rival Nginx.

Neke od najvažnijih karakteristika Apache-a uključuju mogućnost učitavanja i pokretanja različitih tipova modula i posebnih konfiguracija u toku rada, bez stvarnog zaustavljanja servera ili, još gore, kompajliranja softvera svaki put kada se doda novi modul i kada se igra posebna uloga pomoću .htaccess datoteka, koje mogu promijeniti konfiguracije web servera specifične za webroot direktorije.

Prema zadanim postavkama, Apache web server ima instrukcije da osluškuje dolaznu vezu i veže se na port 80. Ako se odlučite za TLS konfiguraciju, server će slušati sigurne veze na portu 443.

Da biste uputili Apache web server da se veže i osluškuje web promet na drugim portovima osim standardnih web portova, morate dodati novu izjavu koja sadrži novi port za buduća povezivanja.

U sistemu baziranom na Debian/Ubuntu, konfiguracijska datoteka koju treba izmijeniti je datoteka /etc/apache2/ports.conf i na bazi RHEL/CentOS distribucije uređuju datoteku /etc/httpd/conf/httpd.conf.

Otvorite datoteku specifičnu za vašu distribuciju pomoću uređivača teksta na konzoli i dodajte novu naredbu porta kao što je prikazano u donjem izvodu.

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

U ovom primjeru ćemo konfigurirati Apache HTTP server da sluša veze na portu 8081. Obavezno dodajte naredbu ispod u ovu datoteku, nakon direktive koja nalaže web serveru da sluša na portu 80, kao što je prikazano na slici ispod.

Listen 8081

Nakon što dodate gornju liniju, trebate kreirati ili izmijeniti Apache virtualni host u Debian/Ubuntu distribuciji kako biste započeli proces povezivanja, specifičan za vaše vlastite vhost zahtjeve.

U CentOS/RHEL distribucijama, promjena se primjenjuje direktno na zadani virtuelni host. U primjeru ispod, modificirat ćemo zadani virtuelni host web servera i uputiti Apache da sluša web promet od 80 porta do 8081 porta.

Otvorite i uredite datoteku 000-default.conf i promijenite port u 8081 kao što je prikazano na donjoj slici.

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

Konačno, da biste primijenili promjene i učinili da se Apache veže na novom portu, ponovo pokrenite demon i provjerite tablicu soketa lokalne mreže koristeći netstat ili ss komandu. Port 8081 u slušanju bi trebao biti prikazan u tabeli mreže vašeg servera.

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

Također možete otvoriti pretraživač i navigirati do IP adrese vašeg servera ili imena domene na portu 8081. Apache zadana stranica bi trebala biti prikazana u pretraživaču. Međutim, ako ne možete da pretražujete veb stranicu, vratite se na konzolu servera i uverite se da su postavljena odgovarajuća pravila zaštitnog zida kako bi se omogućio saobraćaj na portu.

http://server.ip:8081 

Na CentOS/RHEL distribuciji Linuxa instalirajte policycoreutils paket kako biste dodali potrebna SELinux pravila za Apache da se veže na novom portu i ponovo pokrenite Apache HTTP server kako biste primijenili promjene.

yum install policycoreutils

Dodajte Selinux pravila za port 8081.

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

Ponovo pokrenite Apache web server

systemctl restart httpd.service 

Izvršite netstat ili ss naredbu da provjerite da li se novi port uspješno vezuje i poslušate dolazni saobraćaj.

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

Otvorite pretraživač i idite do IP adrese vašeg servera ili imena domene na portu 8081 da provjerite da li je novi web port dostupan u vašoj mreži. Zadana stranica Apachea bi trebala biti prikazana u pregledniku

http://server.ip:8081 

Ako ne možete doći do gore navedene adrese, uvjerite se da ste dodali odgovarajuća pravila zaštitnog zida u tabelu zaštitnog zida vašeg servera.