Liebe Community,
schonmal im Voraus vielen Dank, falls sich jemand meinem Problem annimmt.
Ich benutze momentan WP 2.9.2 (z.T. 3.0) auf verschiedenen Blogs. Mein Hauptproblem ergibt sich aus der Nutzung des Plugins WP Bestsellers (kommerziell), welches eine Liste von bestverkauften Produkten bei Amazon erstellt (z.B. Top25 Parfüms). Die Links zu Amazon werden verhüllt (cloaked) und stellen sich dann bspw. so dar: http://my-domain.com/wpbuy.php?id=1
Wenn ich nun so einen Top25 Post erstelle oder editiere, tritt eine ungemeine Serverlast auf. Und zwar aus dem Grund, dass Wordpress selber laut access_log jeden im Post enthaltenen Link mehrfach aufruft. Das sieht dann im Server Log so aus:
Zitat
ip.ip.ip.ip - - [29/Jul/2010:12:54:37 +0200] "HEAD /wpbuy.php?id=975 HTTP/1.0" 302 - "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:38 +0200] "GET /wpbuy.php?id=975 HTTP/1.0" 302 13 "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:38 +0200] "HEAD /wpbuy.php?id=975 HTTP/1.0" 302 - "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:39 +0200] "GET /wpbuy.php?id=975 HTTP/1.0" 302 13 "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:39 +0200] "HEAD /wpbuy.php?id=975 HTTP/1.0" 302 - "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:40 +0200] "GET /wpbuy.php?id=975 HTTP/1.0" 302 13 "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:40 +0200] "HEAD /wpbuy.php?id=975 HTTP/1.0" 302 - "-" "WordPress/2.9.2; http://domain"
ip.ip.ip.ip - - [29/Jul/2010:12:54:40 +0200] "GET /wpbuy.php?id=975 HTTP/1.0" 302 13 "-" "WordPress/2.9.2; http://domain"
Alles anzeigen
Solche Anfragen treten pro editiertem Post mit 100 Links mindestens 100 mal auf. Wenn ich mehrere Posts in kürzerer Zeit bearbeite, sind das einige tausend "Selbst-Aufrufe" und der Server bedankt sich mit dem Error 500 und ist für eine halbe Stunde auf Tauchfahrt.
Manchmal sind das auch nur HEAD Anfragen und gar keine GETs, machmal treten die sogar auf, wenn ich einen Post bearbeite, der diese Links gar nicht enthält.
Jetzt kommt der unterhaltsame Teil: Das Ganze tritt auch auf, wenn alle Plugins deaktiviert sind. Auch wenn, die wpbuy.php, die in sieben Zeilen aus der ID nur einen richtigen Link generiert, gelöscht ist, finden diese Aufrufe im Access Log statt, werden aber natürlich mit der 404 quittiert.
Handelt es sich um eine normale Routine von Wordpress? Prüft Wordpress selber alle Links in einem Post? Prüft der Post-Editor alle Links? Kann man das abschalten, um die Serverlast zu verringern? Ist ein Plugin schuld, was ich aber seltsam finde, denn es sind ja alle deaktiviert? Ist mein Webspace doof? Mein Provider hat mich schon extra auf einen weniger belasteten Server umgezogen, damit sich die Fehler 500 in Grenzen halten, aber auf Dauer wird er das nicht akzeptieren.
Ein großer Teil der Aufrufe sind laut Log HEAD Aufrufe. Ich habe etwas recherchiert und gelesen[1], dass HEAD Aufrufe häufig dazu genutzt werden, um Links zu testen. Wenn dem in diesem Fall auch so ist, lässt sich das Überprüfen der Links vielleicht mit einem Plugin oder einem Codeschnipsel umgehen?
Besten Dank für eure Ratschläge und euren Support!
Viele Grüße
Dan :)
[1]"for testing hyperlinks, accessibility and for determining if a document has been recently modifed"; http://hc.apache.org/httpclient-3.x/methods/head.html