Wie würde ich das umgehen, wenn ich eine HTTP-Anforderung über einen lokalen (Alias: auf dem aktuellen Server) Proxy weiterleiten möchte?
wp-config.php
Folgende Proxy-Einstellungen sind zulässig :
# HTTP Proxies
# Used for e.g. in Intranets
# Fixes Feeds as well
# Defines the proxy adresse.
define( 'WP_PROXY_HOST', '127.0.84.1' );
# Defines the proxy port.
define( 'WP_PROXY_PORT', '8080' );
# Defines the proxy username.
define( 'WP_PROXY_USERNAME', 'my_user_name' );
# Defines the proxy password.
define( 'WP_PROXY_PASSWORD', 'my_password' );
# Allows you to define some adresses which
# shouldn't be passed through a proxy.
define( 'WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com' );
Diese Frage ist eine Fortsetzung dieser Frage .
wp-remote-request
proxy
http-api
Kaiser
quelle
quelle
Antworten:
Die Proxy-Einstellungen funktionieren wie normale HTTP-Anforderungen, werden jedoch in diesem Fall offensichtlich über einen Proxy geleitet. In Bezug auf WordPress unterstützen alle Transportschichten der API Proxy-Verbindungen (fsockopen, fopen, cURL,).
Die Proxy-Konfigurationen sind in verschiedenen Varianten erhältlich und jedes Setup ist anders, sodass die Beantwortung dieses Problems schwierig ist. Es spielt keine Rolle, ob sich Ihr Proxy auf Ihrem lokalen Host oder Ihrer Remote befindet. Die
wp-config.php
Einstellungen funktionieren unabhängig davon. In der Regel möchten Sie diese Einstellungen verwenden, wenn Sie sich in einem Intranet / einer Firewall befinden, für die bestimmte Anforderungen gelten.Es ist erwähnenswert, einfach einstellen kann Ihre localhost / Webserver für HTTP - Anfragen über einen Proxy / Verkettungs die standardmäßig verwendet und in diesem Fall ist es nicht notwendig , alle Optionen mit einzustellen ,
wp-config.php
da dies auf der Serverebene konfiguriert ist. Wenn Sie Ihren Proxy deaktivieren, wird normalerweise ein Antwortcodeerror 130 ERR_PROXY_CONNECTION_FAILED
von angezeigt. Diese Einstellungen liegen jedoch außerhalb des Bereichs von WordPress.Einige Tools, mit denen Sie Proxy-Verbindungen einrichten und debuggen können:
Um in die WordPress-HTTP-API einzusteigen, empfehle ich das folgende Snippet mit der
http_api_debug
Aktion (geändert,var_dump
um über die Website von viper007bond gefunden zu werden):Die Anforderungsantwort ist der interessante Teil. Manchmal können Sie mit einem kurzen Blick erkennen, ob Ihre Anfrage über einen Proxy erfolgt.
Verwenden Sie beispielsweise die Standard-HTTP-API, um die folgende Anforderung zu stellen.
Jetzt die gleiche genaue Anfrage, aber mit einem Remote-Proxy, der über wp-config.php aktiviert wurde
Wie Sie am Proxy sehen können, ist die Ausgabe anders. Am wichtigsten ist, dass der Proxy das
via
Tag hinzufügt , in diesem Fall einen Squid-Proxy. Proxies sollen dies tun und den Server- Antwortheader nicht ändern, aber nicht jeder befolgt die Regeln, also sei vorsichtig;).Die Konstante
define( 'WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com' )
ist nützlich, um den Zugriff auf Hosts zu ermöglichen, die Sie möglicherweise nicht über einen Proxy verwenden möchten (z. B. WordPress-Updates). Die Kommentare in derclass-http.php
sind irreführend , da standardmäßiglocalhost
undget_option('siteurl);
bereits enthalten sind , aber über die verändert werdenpre_http_send_through_proxy
Filter.Einige zusätzliche Optionen, die mit den Proxy-Einstellungen funktionieren, sind:
WP_HTTP_BLOCK_EXTERNAL
WP_ACCESSIBLE_HOSTS
quelle