Table of Contents

Übersicht der Proxies

Polipo

Auf folgenden Möhren läuft ein Po:

TinyProxy

Auf folgenden Möhren läuft Tiny:

Der Dienst wird als picalike gestartet, ist also unabhängig von corpex.
9.3.2021: Bisher wurde der proxy fälschlicherweise von corpex automatisiert gestartet, das ist jetzt nicht mehr der Fall, restart siehe TODO_readme auf sg02 10.01.2023: tinyproxy was started again by corpex with the wrong configuration, which lead to problems with the image download in the v3, now we have the following commands to edit the config and restart the service:

Warum läuft tiny? Der Po unterstützt kein “selektives” Proxy-ing, wodurch wir Domains nicht ausschließen können. Deshalb verwenden wir einen tinyproxy, der als picalike läuft und je nach Domain entweder den po:8123 als Upstream verwendet, oder eben gar keinen. Hintergrund ist s24.com, die große Mengen an Bildern haben, die wir nicht nutzen, was aber schnell zu einer Größe auf Platte von ~80 GB führt.

Kaskade

Aufgrund der selektiven Filterung von Domains, verwenden wir eine Hintereinanderschaltung von Proxies. Der Ablauf sieht wie folgt aus: Als Hauptproxy wird immer sg02:8888/tcp eingetragen. Dort wird eine Liste von Domains definiert, z.B '.s24.com', die keinen Proxy verwenden, ansonsten wird der Default-Upstream verwendet, was localhost:8123/tcp (po) darstellt.

Falls in Zukunft s24 auf Platte gespeichert werden soll, kann in der Konfiguration von tinyproxy, /mnt/storage/var/etc', die Domain mit einem neuen Upstream-Proxy eingetragen werden. Aber Obacht, der Proxy sollte mind. 100 GB Plattenplatz haben. In der derzeitigen Konfiguration tinyproxy.conf'' sieht es so aus:

no upstream ".s24.com"
upstream cloud01.picalike.corpex-kunden.de:8123 ".bonprix.se"
Upstream localhost:8123

Speziallösungen

Was gibt es sonst noch für Proxies?

Einbindung

Für produktive Zwecke sollte immer der 8888/tcp Proxy auf sg02 verwendet werden.

In python kann der mittels urllib.urlopen wie folgt eingebunden werden:

proxies={'http': 'http://sg02.picalike.corpex-kunden.de:8123/'}
proxies={'https': 'http://sg02.picalike.corpex-kunden.de:8080/'}
proxies={'http': 'http://sg02.picalike.corpex-kunden.de:8123/',
         'https': 'http://sg02.picalike.corpex-kunden.de:8080/'}

Mit urllib2 geht das noch viel cooler, da der Proxy nicht bei jedem urlopen nachgetragen werden muss:

proxy = urllib2.ProxyHandler({'http': 'http://grapy.fritz.box:8123'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
# later
r = urllib2.urlopen(url)

Hier ist eine VPN-Verbindung notwendig.

Lokale Einbindung

Um lokal einen Cache aufzubauen, bitte folgenden Eintrag verwenden:

proxies={'http': 'http://grapy.fritz.box:8123/'}