Obwohl Squid hauptsächlich als Forward-Proxy verwendet wird, kann es auch als Reverse-Proxy konfiguriert werden. Ein Reverse-Proxy fungiert als Vermittler für Anfragen aus dem Internet an interne Server. Er kann zur Lastverteilung, SSL/TLS-Termination und zum Schutz der internen Server eingesetzt werden. Hier sind die Schritte zur Einrichtung von Squid als Reverse Proxy auf einem Linux-Server.
sudo apt-get update
sudo apt-get install squidsudo yum update
sudo yum install squidDie Hauptkonfigurationsdatei von Squid befindet sich in der Regel
unter /etc/squid/squid.conf. Sie müssen diese Datei
bearbeiten, um Squid als Reverse Proxy einzurichten.
sudo nano /etc/squid/squid.confStellen Sie sicher, dass Squid auf dem richtigen Port für eingehende HTTP/HTTPS-Anfragen lauscht. Dies kann beispielsweise Port 80 für HTTP und Port 443 für HTTPS sein.
http_port 80 accel vhost allow-direct
https_port 443 cert=/etc/squid/ssl_cert/mycert.pem key=/etc/squid/ssl_cert/mykey.pem accel vhost allow-direct
Sie müssen die internen Server (Backend-Server) definieren, auf die die Anfragen weitergeleitet werden sollen.
cache_peer backend1.example.com parent 80 0 no-query originserver name=backend1
cache_peer backend2.example.com parent 80 0 no-query originserver name=backend2
Definieren Sie Zugriffskontrolllisten (ACLs) und Zugriffskontrollregeln, um den Zugriff zu steuern.
acl our_sites dstdomain .example.com
http_access allow our_sites
http_access deny all
Eine einfache Beispielkonfiguration könnte wie folgt aussehen:
# Netzwerk-Schnittstellen und Ports
http_port 80 accel vhost allow-direct
https_port 443 cert=/etc/squid/ssl_cert/mycert.pem key=/etc/squid/ssl_cert/mykey.pem accel vhost allow-direct
# Definieren der Backend-Server
cache_peer backend1.example.com parent 80 0 no-query originserver name=backend1
cache_peer backend2.example.com parent 80 0 no-query originserver name=backend2
# Zugriffskontrolllisten und Zugriffskontrollregeln
acl our_sites dstdomain .example.com
http_access allow our_sites
http_access deny all
# Weiterleitungsregeln
cache_peer_access backend1 allow our_sites
cache_peer_access backend2 allow our_sites
Wenn Sie HTTPS verwenden, müssen Sie die SSL/TLS-Zertifikate konfigurieren. Stellen Sie sicher, dass die Pfade zu Ihrem Zertifikat und Ihrem privaten Schlüssel korrekt sind.
https_port 443 cert=/etc/squid/ssl_cert/mycert.pem key=/etc/squid/ssl_cert/mykey.pem accel vhost allow-direct
Ctrl + X, dann Y, und
schließlich Enter, um die Datei zu speichern und den Editor
zu schließen.sudo systemctl start squidsudo systemctl enable squidsudo systemctl status squidDer Status sollte anzeigen, dass der Dienst läuft und keine Fehler aufgetreten sind.
Öffnen Sie einen Webbrowser und geben Sie die URL Ihrer Squid-Proxy-Adresse ein. Die Anfragen sollten an die konfigurierten Backend-Server weitergeleitet werden.
Sie können die Squid-Log-Dateien überprüfen, um sicherzustellen, dass die Anfragen korrekt weitergeleitet werden:
sudo tail -f /var/log/squid/access.logMit diesen Schritten können Sie Squid als Reverse Proxy einrichten. Obwohl Nginx oder Traefik häufiger als Reverse Proxies verwendet werden, bietet Squid eine flexible und leistungsfähige Alternative für die Verwaltung eingehender Anfragen und die Weiterleitung an interne Server.