just a tiny & fast static and fastcgi reverse proxy written in golang
來自: https://github.com/alash3al/xerver
xerver v2.0
just a light and fast reverse proxy for fastcgi based processes .
Features
- Cross platform .
- Accelerated and optimized without modules hell.
- No configurations needed .
- Standalone, Tiny & Lightweight .
- Supports both http and https .
- Automatically use HTTP/2 "in https" .
- Control the whole webserver just with your preferred programming language .
- Tell xerver to perform some operations using http-headers, i.e "send-file, proxy-pass, ... etc" .
- More is coming, just stay tuned .
How It Works
- A request hits the xerver .
- xerver handles the request .
- xserver send it to the backend fastcgi process and the main controller file .
- the controller file contains your own logic .
- fastcgi process reply to xerver with the result .
- xerver parse the result and then prepare it to be sent to the client .
Installation
1- Download the right binary for your os fromhere .
2- Extract the downloaded file contents to any directory say ./xerver/ "current directory" .
3- Using your Terminal cd ./xerver/ .
4- run the following command to display the available options ./xerver --help .
Example (1)
Only acts as a static file server
./xerver --static-dir=/path/to/www/ --addr=0.0.0.0:80
Example (2)
Listen on address 0.0.0.0:80 and send the requests to ./controller.php
./xerver --fcgi-proto=unix --fcgi-addr=/path/to/php-fpm.socks --fcgi-controller=./controller.php --http-addr=:80
** OR Listen on address 0.0.0.0:80 & 0.0.0.0:443 ** and send the requests to ./controller.php
./xerver --fcgi-proto=unix --fcgi-addr=/path/to/php-fpm.socks --fcgi-controller=./controller.php --http-addr=:80 --https-addr=:443 --https-cert=./cert.pem --https-key=./key.pem
Open your ./controller.phpand :
<?php
// uncomment any of the following to test it .
// here you perform your own logic
// echo "<pre>" . print_r($_SERVER, 1);
// some xerver internal header for some operations
// 1)- tell xerver to serve a file/directory to the client .
// header("Xerver-Internal-FileServer: " . __DIR__ . "/style.css");
// 2)- tell xerver to serve from another server "act as reverse proxy" .
// header("Xerver-Internal-ProxyPass: http://localhost:8080/");
// 3)- tell xerver to hide its own tokens "A.K.A Server header"
// header("Xerver-Internal-ServerTokens: off");
// the above headers won't be sent to the client . Open your browserand go to localhost or any localhost paths/subdomains .
Building from source
1- make sure you have Golang installed .
2- go get github.com/alash3al/xerver3- go install github.com/alash3al/xerver
4- enjoy .
Author
本文由用戶 edison1221 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!