Các cài đặt proxy hoạt động giống như các yêu cầu HTTP thông thường nhưng trong trường hợp này rõ ràng được chuyển qua proxy. Về mặt WordPress, các lớp vận chuyển của API đều hỗ trợ các kết nối proxy (fsockopen, fopen, cURL,).
Những điều về cấu hình proxy là chúng có nhiều loại và mỗi thiết lập khác nhau nên việc trả lời này trở nên khó khăn, thực sự không quan trọng nếu proxy của bạn nằm trên localhost hoặc remote, wp-config.php
cài đặt sẽ hoạt động bất kể. Thông thường, bạn muốn sử dụng các cài đặt này nếu trên mạng nội bộ / tường lửa có các yêu cầu cụ thể.
Điều đáng chú ý là bạn chỉ có thể đặt localhost / máy chủ web của mình sử dụng proxy / chuỗi theo mặc định cho các yêu cầu HTTP và trong trường hợp đó, không cần thiết phải đặt bất kỳ tùy chọn nào wp-config.php
vì điều này được định cấu hình ở cấp máy chủ. Nếu bạn tắt proxy của mình, bạn thường thấy mã phản hồi error 130 ERR_PROXY_CONNECTION_FAILED
, nhưng các thiết lập này nằm ngoài phạm vi của WordPress.
Một số công cụ có thể giúp bạn thiết lập và gỡ lỗi kết nối proxy:
Để tìm hiểu về API HTTP của WordPress, tôi khuyên bạn nên sử dụng đoạn mã sau bằng cách sử dụng http_api_debug
hành động (được thay đổi để var_dump
tìm thấy thông qua trang web của viper007bond):
add_action( 'http_api_debug', 'viper_http_api_debug', 10, 5 );
function viper_http_api_debug( $response, $type, $class, $args, $url ) {
// You can change this from error_log() to var_dump() but it can break AJAX requests
var_dump( 'Request URL: ' . var_export( $url, true ) );
var_dump( 'Request Args: ' . var_export( $args, true ) );
var_dump( 'Request Response : ' . var_export( $response, true ) );
}
Các yêu cầu đáp ứng là phần thú vị, đôi khi bạn có thể nói với một cái nhìn nhanh chóng nếu yêu cầu của bạn đang trải qua Proxy ..
Ví dụ: sử dụng API HTTP mặc định để thực hiện yêu cầu sau.
$api_url = 'http://api.wordpress.org/secret-key/1.0/';
$response = wp_remote_get($api_url);
$header = wp_remote_retrieve_headers( $response );
var_dump($header);
Bây giờ cùng một yêu cầu chính xác nhưng sử dụng proxy từ xa được kích hoạt qua wp-config.php
//I grabbed these off of Google search they will not work for long.
define( 'WP_PROXY_HOST', '210.22.115.162' );
define( 'WP_PROXY_PORT', '3128' );
Như bạn có thể thấy proxy, đầu ra là khác nhau, quan trọng nhất là proxy đang thêm via
thẻ, trong trường hợp này là proxy mực. Proxy được cho là để làm điều này và không làm thay đổi tiêu đề phản hồi của máy chủ, nhưng không phải ai cũng tuân theo các quy tắc nên hãy cẩn thận;).
Hằng số define( 'WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com' )
này rất hữu ích để cho phép truy cập vào các máy chủ mà bạn có thể không muốn thông qua proxy (ví dụ: cập nhật WordPress). Các ý kiến trong đó class-http.php
là sai lệch vì theo mặc định localhost
và get_option('siteurl);
đã được bao gồm nhưng có thể được thay đổi thông qua pre_http_send_through_proxy
bộ lọc.
Một số tùy chọn bổ sung hoạt động với cài đặt proxy là:
WP_HTTP_BLOCK_EXTERNAL
WP_ACCESSIBLE_HOSTS