sam-it/proxy

Implementation of the proxy protocol

Maintainers

👁 SamMousa

Package info

github.com/SAM-IT/php-proxy-protocol

pkg:composer/sam-it/proxy

Statistics

Installs: 423

Dependents: 1

Suggesters: 0

Stars: 7

Open Issues: 0

v0.5.0 2016-08-22 09:27 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 8507f912dbece82a58f1e0521dbe8a9f37ed9943

  • Sam <sam.woop@mousa.nl>

This package is auto-updated.

Last update: 2026-06-08 10:45:41 UTC


README

Implementation of HAProxy v1 and v2

👁 Scrutinizer Code Quality
👁 Build Status
👁 Code Coverage

Example of forwarding requests to NGINX

This example illustrates how to create a reverse proxy server that forwards all requests to an NGINX server.

Test script

<?php

include 'vendor/autoload.php';
use \React\SocketClient\TcpConnector;

/** @var \React\EventLoop\LoopInterface $loop */
$loop = \React\EventLoop\Factory::create();
$connector = new TcpConnector($loop);

/** @var \React\Socket\ServerInterface $servers */
$servers = [];

$server = $servers[] = new \React\Socket\Server($loop);
$server->listen(10000, '0.0.0.0');

$forwarder = new \SamIT\Proxy\Forwarder($connector);
$forwarder->on('forward', function(\React\Stream\ReadableStreamInterface $in, \React\Stream\ReadableStreamInterface $out) {
 echo "Connection set up.\n";
});

$forwarder->forwardAll($server, '192.168.37.2', 8011, 1);
echo "Listening..\n";


$loop->run();
die("Done with loop\n");

Configuration for nginx:

server {
 listen 8011 proxy_protocol;

 set_real_ip_from 127.0.0.1/24;
 
 real_ip_header proxy_protocol;
 add_header Content-Type text/plain;
 return 200 "${remote_addr}:${remote_port}\n"; 
}