PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.15.2
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.15.2
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 2 years ago Varnish.php 6 years ago
ReverseProxy.php
61 lines
1 <?php
2 namespace NitroPack\SDK\Integrations;
3 use \NitroPack\HttpClient\HttpClient;
4 use \NitroPack\HttpClient\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, $newPurgeScheme = false) {
31 if ($newPurgeScheme) {
32 $client = new HttpClient($url);
33 $client->doNotDownload = true;
34
35 foreach ($this->headers as $name => $value) {
36 $client->setHeader($name, $value);
37 }
38
39 $client->fetch(true, $this->purgeMethod);
40
41 return true;
42 }
43
44 if (empty($this->serverList)) return false;
45
46 $httpMulti = new HttpClientMulti();
47 foreach ($this->serverList as $server) {
48 $client = new HttpClient($url);
49 $client->hostOverride($client->host, $server);
50 $client->doNotDownload = true;
51
52 foreach ($this->headers as $name => $value) {
53 $client->setHeader($name, $value);
54 }
55
56 $httpMulti->push($client);
57 }
58
59 $httpMulti->fetchAll(true, $this->purgeMethod);
60 }
61 }