<?php // Erstellen Sie einen Proxy -Server $proxy = stream_socket_server('tcp://127.0.0.1:8000', $errno, $errstr); if (!$proxy) { die("Ich habe keinen Proxy -Server erstellen:$errstr ($errno)"); } while (true) { // Kundenverbindungsanfragen akzeptieren $client = stream_socket_accept($proxy); if ($client) { // Lesen Sie Anfragen vom Kunden $request = fread($client, 8192); // Ändern Sie den Anforderungsheader,Getarnt wie Baidu Wenxins WorteAPIAnfrage $request = str_replace( 'Host: localhost:8000', 'Host: api.lovelive.tools', $request ); // Erstellen undAPIVerbindung der Schnittstelle $api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30); if ($api) { // In RichtungAPIDie Schnittstelle sendet Anfrage fwrite($api, $request); // ErhaltenAPIund geben Sie die Antwort an den Kunden zurück while (!feof($api)) { fwrite($client, fread($api, 8192)); } fclose($api); } else { fclose($client); } } } fclose($proxy);
Speichern Sie den Code als Proxy.php und führen Sie ihn über die Befehlszeile aus:
PHP proxy.php
Diesmal wird der Proxy -Server auf Port 127.0.0.1:8000 ausgeführt.
Beispiel für das Senden von Anforderungen über den Proxy mit dem Curl -Befehl:
curl -x localhost: 8000 https://api.lovelive.tools/api/sweetnothings/1
Server { Hören Sie 80; server_name api.mydomain.com; Standort / { proxy_pass http: // localhost: 8000; proxy_set_header host api.lovelive.tools; } }
Reverse Proxy PHP -Code -Beispiel, Implementierung der Anforderungsweiterleitung und Antwortrückgabe:
<?php // Erstellen undAPIVerbindung der Schnittstelle $api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30); if ($api) { // Lesen Sie Anfragen vom Kunden体 $request = file_get_contents('php://input'); // In RichtungAPIDie Schnittstelle sendet Anfrage fwrite($api, $request); // ErhaltenAPIAntworten und zum Kunden zurückkehren while (!feof($api)) { echo fread($api, 8192); } fclose($api); } else { header('HTTP/1.1 500 Internal Server Error'); echo "UndAPISchnittstellenverbindung fehlgeschlagen"; }
Speichern Sie den Code als reverse_proxy.php und starten Sie die Befehlszeile:
PHP -S localhost: 8000 Reverse_proxy.php
Der Reverse -Proxy -Server kann auf dem Localhost: 8000 -Port ausgeführt werden.
Die Client -Anfrage wird direkt an api.mydomain.com gesendet, und der Server ist dafür verantwortlich, ihn an Baidu Wenxin Yiyan API weiterzuleiten und die Antwort zurückzugeben.