Wir haben einen Kunden mit einer Site, die auf Apache läuft. In letzter Zeit hat die Site eine erhöhte Auslastung erfahren, und als Zwischenstopp möchten wir den gesamten statischen Inhalt der Site auf Cookieless-Domains verschieben, z http://static.thedomain.com
.
Die Anwendung ist nicht gut verstanden. Um den Entwicklern Zeit zu geben, den Code so zu ändern, dass ihre Links auf den statischen Inhaltsserver verweisen ( http://static.thedomain.com
), habe ich darüber nachgedacht, die Site über nginx zu proxen und die ausgehenden Antworten so umzuschreiben, dass Links wie folgt /images/...
umgeschrieben werden http://static.thedomain.com/images/...
.
So gibt es beispielsweise in der Antwort von Apache auf nginx einen Blob aus Headern + HTML. In dem von Apache zurückgegebenen HTML haben wir <img>
Tags, die wie folgt aussehen:
<img src="/images/someimage.png" />
Ich möchte dies umwandeln in:
<img src="http://static.thedomain.com/images/someimage.png" />
Damit fordert der Browser beim Empfang der HTML-Seite die Bilder direkt vom statischen Inhaltsserver an.
Ist dies mit Nginx (oder HAProxy) möglich?
Ich habe einen flüchtigen Blick durch die Dokumente geworfen, aber nichts ist mir aufgefallen, außer eingehende URLs neu zu schreiben.
Verwenden Sie am besten die Proxy-Funktion und rufen Sie den Inhalt von der entsprechenden Stelle ab, anstatt URLs neu zu schreiben und Weiterleitungen an den Browser zurückzusenden.
Ein gutes Beispiel für das Proxying von Inhalten sieht folgendermaßen aus:
In dieser Konfiguration leitet
static.domain.com
nginx die Datei nicht über den entsprechenden lokalen Pfad ab , anstatt Anforderungen an den Browser umzuleiten und zu erwarten, dass der Browser eine weitere Anforderung stellt. Wenn die Anforderung dynamisch ist, wird der Proxy aktiviert und ruft die Antwort von einem Apache-Server (lokal oder remote) ab, ohne dass der Endbenutzer dies jemals weiß.Ich hoffe das hilft
quelle
proxy_pass
auf den Apache-Server eingestellt haben, zproxy_pass http://172.16.3.1:80
. Das heißt, wir verschieben die öffentliche IP-Adresse der Site auf den Nginx / CDN-Server.