Tintenfisch hinter Apache 2.4

0

Ich muss eine Squid- Instanz als Forward-Proxy hinter Apache 2.4.6 finden . Ich habe nicht genug Credits, um Inline-Bilder hinzuzufügen. Aber hier ist es

Da Squid3.3 localhost: 3128 abhört und mit der Standardkonfiguration einwandfrei funktioniert, habe ich die folgende Konfiguration vhost config für Apache:

<VirtualHost example.com:443>
    SSLEngine on
       [cert file config]
    ServerName example.com
    DocumentRoot /var/www
    ProxyRequests Off
    ProxyVia Off
    ProxyRemote * http://127.0.0.1:3128
    LogLevel debug
    ErrorLog /var/log/apache2/tunnel_error.log
    CustomLog /var/log/apache2/tunnel_access.log combined
</VirtualHost>

Meine Proxy-Anfragen werden jedoch ohnehin nicht über Squid 3.3 bearbeitet.

Ich habe viele Artikel im Internet gelesen, in denen das Caching vor Apache erklärt wurde. (Vielleicht habe ich es verpasst.) Apache muss jedoch CONNECT-Anfragen willkommen heißen und an Squid weiterleiten.

Haben Sie eine Idee, wie Sie die Konfiguration vornehmen sollen?

.

.

Bearbeiten

Mit Proxypass versuchen

    ProxyRequests Off
    ProxyVia Off
    ProxyPass http://127.0.0.1:3128/
    ProxyPassReverse http://127.0.0.1:3128/

Apache scheint meine Anfrage halbwegs an Squid weiterzuleiten. Weil Squid mich diesmal warnt mit:

ERROR

The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: /
    "Invalid URL"
Some aspect of the requested URL is incorrect.
Some possible problems are:
    * Missing or incorrect access protocol (should be http:// or similar)
    * Missing hostname
    * Illegal double-escape in the URL-Path
    * Illegal character in hostname; underscores are not allowed.
Your cache administrator is webmaster.

Weil Squid denkt, ich würde gerne http://icanhazip.com als Seite von meinem eigenen Server bekommen. (Oder irre ich mich?)

==> apache access log <==
1.1.1.1.myip - - [03/Apr/2014:23:33:26 +0300] "GET http://icanhazip.com/ HTTP/1.1" 400 2006 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"
==> squid3 access.log <==
1396557520.935      0 127.0.0.1 NONE/400 2006 GET / - HIER_NONE/- text/html

. .

Bearbeiten 2 - Das Diagramm

Disred Lösung wäre wie folgt:

1) Da ich noch keinen Ausweg finden konnte. Ich möchte die Frage wie vorgeschlagen mit einem Diagramm verbessern.

2) Ich habe bei der Prüfung der Überschriften bemerkt, dass

GET /
Host: yahoo com

was von Apache an Squid übergeben werden soll

GET http:\\yahoo.com

zum Beispiel, um das klären zu können.

Die Diagramm-URL befindet sich oben.

JSBach
quelle
Ich bin mir nicht ganz sicher, was Sie erreichen wollen, aber Sie machen eigentlich keinen Apache-Proxy. Du brauchst sowas ProxyPass.
Daniel B
Ich habe diese Details in die Bearbeitung aufgenommen.
JSBach
Nun, das kann natürlich auch nicht funktionieren. Ein Forward-Proxy ist kein Webserver. Beschreiben Sie stattdessen, was Sie erreichen möchten.
Daniel B
Ich kann damit einverstanden sein, dass dies kein Standardszenario ist, so dass APACHE vor SQUID steht. SQUID ist kein Webserver, sondern ein Forward-Proxy mit eingeschränkter Unterstützung für die SSL-Verarbeitung. Sie können SQUID nicht mit mehreren SSL-Domänen mit einer Instanz aktivieren. Und es gibt noch andere Dinge. Das versuche ich also zu tun. APACHE, um meine Anfragen transparent an / von SQUID weiterzuleiten.
JSBach
Möchten Sie wirklich sogar einen Forward-Proxy? Sie haben Ihr Projekt noch nicht vollständig beschrieben. Das ist sehr wichtig. Mit Diagrammen bitte. Sonst kann dir niemand helfen.
Daniel B

Antworten:

0

kombination von mit löste ein ähnliches problem für mich.ProxyRemote * http://localhost:3128 RewriteRule ^/(.*)$ http://$1 [P,L]

Mestia
quelle
Ich werde es bald versuchen
JSBach
Ich habe es versucht, aber auch nicht funktioniert. Ich nehme an, es ist besser, die Art und Weise zu verwenden, wie dieser Typ es tut, und die Verbindung würde folgendermaßen aussehen: Eingehende> Squid> Nginx (als YouTube-Downloader dh.)> Apache (als dynamischer Web-Handler dh.)> Antwort.
JSBach
Ich brauchte einen Reverse Proxy vor Squid. Das Problem ist, dass Squid aus irgendeinem Grund Anfragen wie diese nicht bearbeiten konnte: installer: 9999 / security.ubuntu.com / ubuntu / dists / trusty-security /… , mit Hilfe von mod_rewrite und mod_proxy Slash am Anfang) und dann akzeptiert Tintenfisch sie. hier der kurze artikel : male.donotuse.de/gblog/posts/squid-deb-proxy-frontend , dein problem scheint komplizierter zu sein.
Mestia
Ich habe das Problem gefunden. Alles dreht sich um den Befehl "GET" in der Kopfzeile. Es sollte mit Hostname sein, aber es ist nicht. Es ist nur "GET /" anstelle von "GET blabla.com ". (SSL ist noch nicht
aktiviert