Table of Contents
Übersicht der Proxies
Polipo
Auf folgenden Möhren läuft ein Po:
- sg02.picalike.corpex-kunden.de:8123 (live)
- cloud01.picalike.corpex-kunden.de:8123 (live)
- dev02.picalike.corpex-kunden.de:8123 (dev)
TinyProxy
Auf folgenden Möhren läuft Tiny:
- sg02.picalike.corpex-kunden.de:8888 (live/tinyproxy)
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:
- sudoedit /etc/tinyproxy.conf
- sudo /etc/init.d/tinyproxy restart
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?
- dazzler: Image-Proxy der Bilder verkleinert (warp → NxN) auf 8081, für die Personendetektion
- dazzler: Image-Proxy der Bilder mit aspect-ration verkleinert auf 8080 für den Feature-Dienst
- sg02: ein SSL-Proxy, der https-Bilder runterlädt speichert und wiedergibt (nicht zuverlässig!)
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/'}