1. ábra: Apache IP alapú VirtualHost.
Név alapú VirtualHost: A névalapú VirtualHost esetében egy Apache-kiszolgálónak egyetlen IP-címe és több domainneve van konfigurálva az egyes webhelyekhez. Egy DNS-kiszolgálón ezeknek a tartományneveknek mindegyikéhez hozzárendelik az Apache szerver IP-címét. Az ügyfél által használt domainnévtől függően a szerver különböző webhelyeket ad vissza.
2. ábra: Apache név alapú VirtualHost.
Ebben a cikkben bemutatom, hogyan konfigurálhatja az Apache néven alapuló VirtualHost alkalmazást. Ubuntu 18-at fogok használni.04 LTS a demonstrációra. De működnie kell minden modern Linux disztribúción, kevés változtatás nélkül. Tehát kezdjük.
Az Apache 2 webkiszolgáló telepítése:
Az Apache 2 webkiszolgáló az Ubuntu 18 hivatalos csomagtárában érhető el.04 LTS. Tehát könnyen telepítheti az APT csomagkezelővel.
Először frissítse az APT csomagtárház gyorsítótárát a következő paranccsal:
$ sudo apt frissítés
Most futtassa a következő parancsot az Apache 2 webkiszolgáló telepítéséhez:
$ sudo apt install apache2
Most nyomja meg y majd nyomja meg
Az Apache 2 webkiszolgálót telepíteni kell.
DNS konfigurálása:
Most be kell állítania a DNS-kiszolgálót, hogy a VirtualHost számára használni kívánt tartományneveket az Apache-kiszolgáló IP-címéhez hozzárendelje.
Az Apache szerver IP-címét a következő paranccsal találhatja meg:
$ ip a | egrep "inet"Amint láthatja, az IP-cím esetemben az 192.168.21.166. Neked más lesz. Tehát mindenképpen cserélje le mostantól a sajátjára.
Ha meg szeretné tudni, hogyan kell helyileg konfigurálni az Apache VirtualHost alkalmazást, akkor használhatja a / etc / hosts fájl a helyi DNS / névfeloldáshoz.
A helyi DNS-felbontás konfigurálásához nyissa meg a / etc / hosts fájl a nano alábbiak szerint:
$ sudo nano / etc / hosts
Most adja hozzá a fájlt az alábbi képernyőképen jelzett sorhoz. Ezután nyomja meg a gombot
Most a helyi névfeloldásnak működnie kell.
Directory struktúrák:
Szeretném az Apache VirtualHost webhelyem összes adatait egy adott könyvtárban tartani / www. Itt szeretnék létrehozni egy könyvtárat minden felhasználó számára. Minden felhasználónak megvan a sajátja public_html / és naplók / könyvtárat is.
Például 3 felhasználó számára bob (példa1.com), alice (példa2.com), linda (példa3.com), a könyvtárstruktúra a következő:
/ www- példa1.com /
- www /
- public_html /
- index.html
- naplók /
- példa2.com /
- www /
- public_html /
- index.html
- naplók /
- 3. példa.com /
- www /
- public_html /
- index.html
- naplók /
Ennek egyszerű módja egy sablon vagy csontváz-könyvtár létrehozása és a könyvtárstruktúra odaillesztése. Ezután hozza létre az egyes felhasználókat a csontváz könyvtár segítségével.
Először másolja át az alapértelmezett csontváz könyvtár tartalmát / etc / skel egy másik könyvtárba / etc / skel-www alábbiak szerint:
$ sudo cp -rv / etc / skel / etc / skel-www
Most keresse meg az új csontváz könyvtárat az alábbiak szerint:
$ cd / etc / skel-www
Ezután hozza létre a kívánt könyvtárstruktúrát a csontváz könyvtárban az alábbiak szerint:
$ sudo mkdir -p www / public_html, logs
Létrehozhat egy alapértelmezettet is index.html fájl a public_html / könyvtárat, ha akarja.
$ echo "Működik
"| sudo tee www / public_html / index.html
Most hozza létre a / www könyvtár a következő paranccsal:
$ sudo mkdir / www
Felhasználók létrehozása:
Most létrehozhatja a felhasználót bob a www.példa1.com az alábbiak szerint:
$ sudo useradd --create-home --home-dir / www / example1.com - shell/ bin / bash --gid www-data --skel / etc / skel-www bob
Ugyanígy hozza létre a felhasználót alice a www.példa2.com az alábbiak szerint:
$ sudo useradd --create-home --home-dir / www / example2.com --shell / bin / bash--gid www-data --skel / etc / skel-www alice
Ismét hozza létre a linda felhasználót a www számára.3. példa.com az alábbiak szerint:
$ sudo useradd --create-home --home-dir / www / example3.com --shell / bin / bash--gid www-data --skel / etc / skel-www linda
Itt minden felhasználó elsődleges csoportját hozzárendeltem www-adatok. Alapértelmezés szerint az Apache szerver ebben a csoportban fut. Ha ezt nem tettem volna meg, az Apache szerver nem fogja tudni elérni a public_html / könyvtárba, és hozzon létre naplófájlokat a naplók / Könyvtár.
Az Apache VirtualHost beállítása:
Most már készen áll az Apache VirtualHost konfigurálására 3 felhasználó számára bob (www.példa1.com), alice (www.példa2.com) és linda (www.3. példa.com).
Az alapértelmezett Apache helykonfigurációs könyvtár az Ubuntuban / etc / apache2 / sites-available.
Most keresse meg a könyvtárat / etc / apache2 / sites-available / alábbiak szerint.
$ cd / etc / apache2 / sites-available /
Először hozzon létre egy új konfigurációs fájlt a bob számára www.példa1.com.konf alábbiak szerint:
$ sudo nano www.példa1.com.konf
Meg kell nyitni egy szövegszerkesztőt.
Írja be a következő sorokat.
Kiszolgálónév példa1.comServerAlias www.példa1.com
DocumentRoot "/ www / example1.com / www / public_html "
Opciók -FollowSymLinks + MultiViews + Indexek
AllowOverride all
Minden megköveteltet megkövetel
ErrorLog "/ www / example1.com / www / logs / error.napló "
CustomLog "/ www / example1.com / www / logs / access.log "kombinált
MEGJEGYZÉS: Változtassa meg a félkövér szövegeket az igényei szerint.
Végül a konfigurációs fájl www.példa.com.konf a következőképpen néz ki. nyomja meg
hogy csak átmásolja a konfigurációs fájlt bob (www.példa1.com.konf), és hajtsa végre a szükséges változtatásokat.
Másolja a konfigurációs fájlt bob mert alice és linda a következő parancsokkal:
$ sudo cp -v www.példa1.com.konf www.példa2.com.konf$ sudo cp -v www.példa1.com.konf www.3. példa.com.konf
Most szerkessze a konfigurációs fájlt alice alábbiak szerint:
$ sudo nano www.példa2.com.konf
Most módosítsa a példa1 nak nek példa2. Ezután mentse a fájlt.
Tedd ugyanezt linda.
$ sudo nano www.3. példa.com.konf
A. Összes előfordulásának módosítása példa1 nak nek 3. példa és mentse a fájlt.
A VirtualHost konfigurációk engedélyezése:
Most tiltsa le az Apache alapértelmezett webhelykonfigurációját az alábbiak szerint:
$ sudo a2dissite 000-default.konf
Most engedélyezze a VirtualHost konfigurációkat www.példa1.com.konf, www.példa2.com.konf, www.3. példa.com.konf alábbiak szerint:
$ sudo a2ensite www.példa1.com.konf www.példa2.com.konf www.3. példa.com.konf
Végül indítsa újra az Apache szolgáltatást az alábbiak szerint:
$ sudo systemctl indítsa újra az apache2 fájlt
VirtualHosts tesztelése:
Most próbálja meg elérni a www webhelyeket.példa1.com, www.példa2.com, www.3. példa.com
Amint láthatja, ezek a webhelyek a várakozásoknak megfelelően működnek.
JEGYZET: Megváltoztattam az alapértelmezett oldalt index.html az egyes webhelyeknél, így tesztelési célból ez egy kicsit más az egyes webhelyeknél. Ellenkező esetben nem tudja megmondani, hogy a VirtualHost konfiguráció működik-e vagy sem.
Tehát így állíthatja be a névalapú Apache VirtualHost alkalmazást az Ubuntu 18-on.04 LTS. Köszönjük, hogy elolvasta ezt a cikket.