Kako da podesite virtuelne hostove na CentOS 7
Uvod
Apache vam omogućava da njegove komponete podesite i konfigurišete nezavisno. Osnovna jedinica koja opisuje jedan sajt ili domen zove se virutelni host.
Virtuelni hostovi omogućavaju jednom serveru da hostuje više domena ili interfejsa pomoću sistema za ukrštanje informacija što je važno ako želite da hostujete više od jednog sajta na jednom VPS-u.
Na ovaj način svaki domen će usmeriti posetioca ka folderu u kome se nalaze informacije tog sajta. Ovakvu konfiguraciju možete da proširujete dok god vaš server može da podnese količinu saobraćaja na svim sajtovima koje hostujete.
Ovo uputstvo će vam demonstrirati kako možete da podesite virtuelne hostove naCentOS 7 VPS kako biste prikazivali različite sadržaje svojim posetiocima zavisno od toga kom su domenu pristupili.
Preduslovi
Pre nego što počnete, proverite da li su ovi koraci već izvedeni:
Neophodno je da imate pristup CentOS 7 serveru preko korisnika koji nije root, ali ima sudo privilegije. Ovo podešavanje je na raspolaganju tokom inicijalnog podešavanja za CentOS 7 server.
Takođe je potrebno da imate Apache instaliran na vašem serveru kako biste mogli da konfigurišete virtuelne hostove. Ako to još uvek niste uradili, Apache možete da instalirate pomoću yum-a:
sudo yum -y install httpd
Sledeći korak je da podesite Apache kao CentOS servis kako bi bio automatski pokrenut nakon restarta:
sudo systemctl enable httpd.service
Nakon što ste izveli ove korake, ulogujte u svoj nalog koji nije root pomoću SSH-a i nastavite sa narednim koracima u ovom uputstvu.
Napomena: Ovo uputstvo će objasniti kako se pravi host pomoću primera example.com i example2.com.
Pravljenje strukture foldera
Kao prvi korak trebalo bi da napravite strukturu foldera u kojima će se nalaziti podaci koje ćete da prikazujete svojim posetiocima.
Document root folder će da bude podešen na pojedinačne foldere u /var/www/ folderu. Ovde bi trebalo da napravite folder za svaki od virtuelnih hostova koje ćete da napravite.
U svakom od ovih foldera bi trebalo da napravite public_html folder u kome će se nalaziti fajlovi vašeg sajta. Foldere možete da napravite pomoću mkdir komande (koristite -p flag koji omogućava da napravite folder unutar foldera):
sudo mkdir -p /var/www/example.com/public_html sudo mkdir -p /var/www/example2.com/public_html
Davanje odgovarajućih permisija
U ovom trenutku postoji struktura foldera za vaše fajlove, ali je njihov vlasnik root korisnik. Ukoliko želite da obični korisnici mogu da modifikuju fajlove u vašim web folderima, trebalo bi da podesite permisije na ovaj način:
sudo chown -R $USER:$USER /var/www/example.com/public_html sudo chown -R $USER:$USER /var/www/example2.com/public_html
Varijabla $USER će da preuzme vrednost od korisnika kojije trenutno ulogovan. Na ovaj način obični korisnici mogu da postanu vlasnici public_html podfoldera u koje će biti smešten sadrža.
Takođe bi trebalo da promenimo permisije kako bi read pristup bio omogućen za web folder kao i sve fajlove i foldere koji su u njemu i kako bi strane vašeg sajta mogle da budu prikazane.
sudo chmod -R 755 /var/www
Vaš server jesada podešen tako da može da prikazuje sadržaj, a vaš korisnički nalog bi trebalo da ima permisije da dodaje sadržaj u odgovarajuće foldere.
Pravljenje demo strana za svaki virtuelni host
Sada pošto je napravljena odgovarajuća struktura foldera, možete da dodate sadržaj. U ovom primeru će biti pokazano dodavanje index.html strane za svaki sajt koji je povezan sa odgovarajućim domenom.
Kao prvi primer biće korišćen example.com sajt. Pomoću editora otvorite index.html fajl:
nano /var/www/example.com/public_html/index.html
Unutar ovog fajla napravite jednostavni HTML dokument koji identifikuje sajt, na primer dodajte:
Welcome to Example.com!
Sačuvajte i zatvorite ovaj fajl. Možemo da ga kopiramo i da ga upotrebimo kao šablon za drugi sajt tako što ćemo da otkucamo sledeću komandu:
cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html
Sada možemo da otvorimo taj fajl i da promenimo odgovarajuće informacije:
nano /var/www/example2.com/public_html/index.html
Welcome to Example2.com!
Sačuvajte i zatvorite i ovaj fajl. Sada imate sve što vam je potrebno da biste mogli da testirate konfiguraciju virtuelnog hosta.
Pravljenje virtuelnih host fajlova
Virtuelni host fajlovi u sebi nose informaciju o tome koja je konfiguracija različitih sajtova i daju instrukcije Apache web serveru u vezi sa tim kako da se ponaša u vezi sa zahtevima za različitim domenima.
Za početak, potrebno je da podesimo folder u kom će virtuelni hostovi da budu smešteni, kao i folder koji će da obavesti Apache server da je virtuelni host spreman da isporučuje sadržaj vašim posetiocima.
sudo mkdir /etc/httpd/sites-available sudo mkdir /etc/httpd/sites-enabled
U sledećem koraku Apache-u ćemo da damoinstrukciju u vezi sa tim gde se nalaze virtualni hostovi, na taj način što ćemo da dodamo ovu liniju u glavni konfiguracioni fajl za Apache:
sudo nano /etc/httpd/conf/httpd.conf
Dodajte i ovu liniju na kraju:
IncludeOptional sites-enabled/*.conf
Pravljenje prvog virtuelnog host fajla
Otvorite novi fajl u editoru koristeći root privilegije:
sudo nano /etc/httpd/sites-available/example.com.conf
Napravite par tagova kojim ćete da označite sadržaj kao virtuelni host koji sluša naportu 80 (default HTTP port):
Potom ćemo da navedemo ime glavnog servera, www.example.com. Takođe ćemo da napravimo server alijas koji će da pokazuje na example.com kako bi i www.example.com i example.com upućivali na isti sadržaj:
ServerName www.example.com ServerAlias example.com
Napomena: Da bi www verzija domena radila ispravno, u DNS konfiguraciji treba da bude podešen A record ili CNAME koji www zahteve usmerava na IP adresu servera. Možete takođe da koristite i wildcard.
Poslednji korak je pokazivanje na root folder u kome se nalaze fajlovi našeg sajta. Takođe ćemo Apache-u da damo instrukciju u vezi sa tim gde da smešta log informacije u vezi sa ovim sajtom:
ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/public_html ErrorLog
/var/www/example.com/error.log CustomLog /var/www/example.com/requests.log combined
Kopiranje prvog virtuelnog hosta i prilagodjavanje za dodatne domene
Sada, pošto je napravljen prvi virtuelni host,možemo da napravimo i drugi tako što ćemo da kopiramo taj fajl i da napravimo neophodne izmene.
Napravite izmene pomoću cp:
sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.com.conf
Otvorite fajl u svom text editoru koristeći root privilegije:
sudo nano /etc/httpd/sites-available/example2.com.conf
Sada treba da izmenite sve informacije koje se tiču drugog domena. Kada završite vaš drugi virtuelni host bi trebalo da izgleda otprilike ovako:
ServerName www.example2.com DocumentRoot /var/www/example2.com/public_html ServerAlias example2.com ErrorLog /var/www/example2.com/error.log CustomLog /var/www/example2.com/requests.log combined
When you are finished making these changes, you can save and close the file.
Uspostavljanje novih virtuelnih host fajlova
Nakon što smo napravili nove virtuelne hostove, treba da ih uspostavimo kako bi Apache počeo da ih prikazuje. Da bismo to postigli možemo da napravimo simbolički link za svaki od virtuelnih hostova:
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sites-enabled/example2.com.conf
Kada završite restartujte Apache da bi promene bile vidljive:
sudo apachectl restart
Sedmi korak — Testiranje
Sada pošto ste pravilno konfigurisali svoje virtuelne hostove, možete da testirate podešavanja tako što ćete u browser da ukucate
http://example.com
Na isti način možete da proverite i ostale domene i vidite index.html koji ste za njih podesili.
Ako svi sajtovi prikazuju odgovarajuće index.html fajlove, to znači da ste uspešno konfigurisali svoje Apache virtuelne hostove na svom CentOS serveru.
Ako ste podesili host fajlove na svom kompjuteru, sada možete da obrišete linije koje ste dodali jer ste se uverili da konfiguracija pravilno radi.
CentOS7 je uspešno podešen
U ovom trenutku bi trebalo da imate CentOS7 server koji operiše sa nekoliko sajtova na različitim domenima. U svakom trenutku možete da dodate više virtuelnih hostova, prateći proceduru koja je ovde opisana.