Simple Php Proxy based on Guzzle.
Use Composer...
composer require frdl/proxy
...or the Webfan Installer if you would like to build a larger project.
<?php
use frdl\Proxy\Proxy;
require 'vendor/autoload.php';
$proxy = (new Proxy(null,
$_SERVER['REQUEST_URI'],
'green.example.com', //target host
$_SERVER['HTTP_HOST'], //User Input, forward optionaly*
$_SERVER['REQUEST_METHOD'],
'https',
false))
->withFakeHost(true) //*Do overwrite/not use users host header
//...or...
->withFakeHeader('X-Forwarded-Host')
;
$proxy->handle(true);
Internally the proxy ignores the bounce
-detection silently to fallback to any localhost scripts.
You can use it before/without handling the HTTP-Forwarding, e.g. to perform a (test-)request on the same host.
<?php
if(!$proxy->bounce()){
$proxy = (new Proxy('blue',
$_SERVER['REQUEST_URI'],
'blue.example.com', //target host
'example.com', //set the host header on the target script
$_SERVER['REQUEST_METHOD'],
'https',
true))
->handle(true);
}
Built in cache feature:
composer require doctrine/cache
$proxy->withCacheDir(string $dir = null, int $ttl= 1800, bool $force=true)