Reverse Proxy vor Apache

  • Servus, ich habe zwei Server...


    1.) Einen Hauptserver, auf dem i-MSCP 1.5.3 installiert ist, wo auch alle Kunden/Domains drauf liegen.

    2.) Habe ich einen kleinen VPS, den ich als Proxy vor eine Kunden-Domain schalten will.


    Wenn man dann die entsprechende Domain aufruft, soll man nur die VPS-IP sehen. Die IP vom Hauptserver soll versteckt sein.


    Auf beiden Servern läuft Debian 8.


    Wie richte ich das ein, kann mir jemand dabei helfen?


    LG

    Edited 5 times, last by sash456 ().

  • Servus!


    An ein update von Debian hast du sicher schon gedacht.

    Was läuft auf dem kleinen VPS? Nginx? Apache?


    Du hast doch sicher schon mal nach "Debian Apache Proxy" gesucht, oder?


    Solltest du derzeit noch ohne Apache am zweiten Server arbeiten:


    Code
    1. apt install apache2
    2. a2enmod proxy
    3. a2enmod proxy_http
    4. a2dissite 000-Default.conf
    5. service apache2 reload

    Damit hast du Apache installiert und die Module Proxy und Proxy_http geladen und die Standard Website "entladen".


    Jetzt wechselst du in diesen Unterordner: /etc/apache2/sites-available


    Dort legst du sowas an (weiterleitung.conf):


    Code
    1. <VirtualHost *:80>
    2. ServerAdmin Deine-E-Mail-Adresse
    3. ServerName dein.Domainname.com
    4. ProxyPreserveHost On
    5. DocumentRoot /var/www/html
    6. ProxyPass /.well-known !
    7. ProxyPass / http://die-weiterleitungs-ip:Port/
    8. ProxyPassReverse / http://die-weiterleitunsg-ip:Port/
    9. </VirtualHost>

    Dann die ganze Sache noch laden (mit a2ensite) und den Apachen neu laden

    Code
    1. a2ensite weiterleitung.conf
    2. service apache2 reload

    Sollte soweit funktionieren.
    Dann kann man noch Let's Encrypt installieren:


    Code
    1. apt-get remove certbot
    2. wget https://dl.eff.org/certbot-auto
    3. mv certbot-auto /usr/local/bin/certbot-auto
    4. chown root /usr/local/bin/certbot-auto
    5. chmod 0755 /usr/local/bin/certbot-auto

    Und dann noch

    Code
    1. /usr/local/bin/certbot-auto --apache

    Automatisches Update der Zertifikate:

    Code
    1. echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
    Quote

    Wenn es geht, einfach kurze Info hier geben. Hab keine Debian 8 mehr zum Testen.


    LG

  • Hi, danke für die Antwort. Ich bin derzeit noch arbeiten, so bald ich zu Hause bin werde ich es testen und mich wieder melden.


    Ja, der VPS ist noch leer und es ist mir eigentlich egal ob Apache oder Nginx, soll nur vernünftig laufen und man soll die Server-IP nicht herausfinden können :)


    Noch was: Ich nutze Cloudflare mit SSL für die Domain (habe das LetsEncrypt Plugin ). Sollte relevant sein, oder?

  • Nee quatsch, habe mich falsch ausgedrückt, sorry. Da ist noch gar nichts bei Cloudflare.


    Am Ende will ich die VPS-IP-Adresse bei Cloudflare eintragen.


    Cloudflare => VPS Reverse Proxy => Kundendomain auf Hauptserver

  • So habe Apache usw. installiert und funktioniert.


    Bei weiterleitung.conf hakt es. Was soll ich bei "ServerName" eintragen, die Kundendomain vom anderen Server?

    Und welche IP bei ProxyPass und ProxyPassReverse, die vom VPS? Welchen Port?

    Edited 2 times, last by sash456 ().

  • Habe es nun endlich hinbekommen :D


    Ein Problem habe ich aber noch: In den Logs des Backend-Server stehen jetzt nur noch die Proxy-IPs. Wie mache ich die originalen IPs wieder sichtbar?

    Hier meine Virtualhost:


    Code
    1. <VirtualHost *:80>
    2. xxx
    3. </VirtualHost>

    Ich habe bei der Weiterleitungs-ip keinen Port, kann es deswegen zu irgendwelchen Problemen kommen?


    Ist es jetzt noch irgendwie möglich, die Backend-Server-IP herauszufinden? Habe irgendwo gelesen, dass es trotzdem noch möglich wäre und man die Firewall noch konfigurieren sollte.

    MfG

    Edited 3 times, last by sash456 ().

  • Ich checks einfach nicht warum das nicht geht.


    So habe ich es gemacht:


    mod_remoteip aktivieren

    xxx


    In die xxx habe ich folgendes stehen:

    Code
    1. xxx

    Dann in der /etc/apache2/xxx das LogFormat geändert in LogFormat "xxx


    Danach natürlich service apache2 restart, aber es steht weiterhin die Proxy-IP in der access.log.


    Kann es sein das i-MSCP das irgendwie nicht zulässt oder dazwischen funkt?

    Edited 7 times, last by sash456 ().