Gyengus™ weblapja

Apache reverse proxy beállítása

Adott egy internetkapcsolat, egy publikus IP-vel, egy routerrel, a belső hálózaton két szerver és két domain. Mindkét szerveren fut 1-1 web szerver (apache2). Fontos, hogy mind a két szerveren található weboldalt el lehessen érni. Tehát a domain1 tartalma a szerver1-en, míg a domain2-é a szerver2-n található. Mindkét domain az egyetlen publikus IP-re van irányítva. Természetesen a 80-as és 443-as portot csak 1 IP-re tudja forwardolni a router. A megoldást az Apache proxy modulja nyújtja.

Első lépésként az említett modult kell bekapcsolni, jelen esetben a szerver1-en, mert erre forwardoljuk a 80-as és 443-as portokat.

Második lépésként be kell állítani a vistualhostokat. A szerver2-n a szokásos módon beállítjuk a domain2-t. A szerver1-en, szintén a szokásos módon beállítjuk a domain1-et.

A szerver1-en be kell állítani a domain2-t. Lent látható a config fájl. Meg kell adni a szerver2 elérését (ProxyPass), hogy a forgalmat át tudja irányítani az apache a szerver2-re. SSL kapcsolatnál szükséges még a szerver2 tanusítványát átmásolni a szerver1-re és megadni a privát és a publikus kulcsot is. Így a böngésző a domain2-höz társított tanusítványt fogja látni.

<VirtualHost *:80>  
    ServerName domain2  
    ServerAlias domain2a

    ProxyPreserveHost on  
    ProxyPass / http://szerver2/  
    ProxyPassReverse / http://szerver2/  
</VirtualHost>

<VirtualHost *:443>  
    ServerName domain2  
    ServerAlias domain2a

    ProxyPreserveHost on  
    ProxyPass / https://szerver2/  
    ProxyPassReverse / https://szerver2/

    SSLEngine on  
    SSLProxyEngine on  
    SSLCertificateFile /etc/ssl/certs/szerver2.pem  
    SSLCertificateKeyFile /etc/ssl/private/szerver2.key  
</VirtualHost>

Amennyiben PHP-ból tudni szeretnénk a látogató valódi IP-jét a $_SERVER['HTTP_X_FORWARDED_FOR'] nevű változóban kell keresnünk, ugyanis a $_SERVER['REMOTE_ADDR']-ben a szerver1 IP-je lesz.

Kategóriák: IT
Címkék: apache2, linux, PHP, web
Dátum: 2014. augusztus. 16.
Ha tetszett a cikk, oszd meg barátaiddal:
« »