PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.18.4
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.18.4
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 1 year ago ReverseProxy.php 1 year ago Varnish.php 1 year 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 }