PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.13
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.13
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / nitropack-sdk / NitroPack / SDK / Integrations / ReverseProxy.php
nitropack / nitropack-sdk / NitroPack / SDK / Integrations Last commit date
Nginx.php 6 years ago ReverseProxy.php 4 years ago Varnish.php 6 years ago
ReverseProxy.php
49 lines
1 <?php
2 namespace NitroPack\SDK\Integrations;
3 use \NitroPack\HttpClient;
4 use \NitroPack\HttpClientMulti;
5
6 class ReverseProxy {
7
8 protected $serverList;
9 protected $purgeMethod;
10 protected $headers;
11
12 public function __construct($serverList=null, $purgeMethod="PURGE", $headers = []) {
13 $this->serverList = $serverList;
14 $this->purgeMethod = $purgeMethod;
15 $this->headers = $headers;
16 }
17
18 public function setServerList($serverList=null) {
19 $this->serverList = $serverList;
20 }
21
22 public function setPurgeMethod($method) {
23 $this->purgeMethod = $method;
24 }
25
26 public function setHeader($name, $value) {
27 $this->headers[$name] = $value;
28 }
29
30 public function purge($url) {
31 if (empty($this->serverList)) return false;
32
33 $httpMulti = new HttpClientMulti();
34 foreach ($this->serverList as $server) {
35 $client = new HttpClient($url);
36 $client->hostOverride($client->host, $server);
37 $client->doNotDownload = true;
38
39 foreach ($this->headers as $name => $value) {
40 $client->setHeader($name, $value);
41 }
42
43 $httpMulti->push($client);
44 }
45
46 $httpMulti->fetchAll(true, $this->purgeMethod);
47 }
48 }
49