Pretty Good Server
Multipurpose load balancing intercepting proxy written in C.
Introduction
This application is a load balancing intercepting proxy.
Key features:
- Security against DDoS attacks on your upstream server.
- Distribute incoming connections over several servers.
- Host multiple protocols/services on one port as a security measure.
- Advanced routing based on hostname or any header data.
- Interception of content. Modifying content passing through this server is possible.
Features
AI Support
Thanks to the Python implementation, it's possible to use AI in this server in the way most people are accustomed to.
Interception
All upstream and downstream data will go through Python code provided by the user. A user can use this capability to modify headers and content. With this functionality, you can enhance security. Additionally, you can apply corrections, translations, and remove emojis. In a commercial sense, you could replace certain words with links to advertised content.
Advanced Routing
Routing is more advanced than any other web server provides. For routing, Python is integrated, giving it unlimited options. You could even write custom responses with Python, add webhooks, or override an existing page of software where you normally don't have control. Other features include, but are not limited to:
- Force the usage of authentication tokens (or base64 authentication).
- Validate authentication tokens by connecting to a database.
- Implement rate limiting.
- Execute calls to AI to modify intercepted content.
Load Balancing
Using Python, you can apply your own dynamic load balancing rules. You know exactly which servers have which connections. A good idea could be to include the server load or other statistics in the response header of servers. Using interception, you can remove this data for the client.
Hostname Redirection
You can redirect based on hostname dynamically. You could use the same source code and, based on hostname, determine if you use production or development settings.
Application Server
Because of its huge concurrency capabilities, it's perfectly suitable as an application server. It's not only a load balancer, it's also a reverse proxy. It's a complete solution to your needs.
docs | |
doxygen-awesome-css@af1d9030b3 | |
static | |
.gitignore | |
.gitmodules | |
build.py | |
Doxyfile | |
features.md | |
Makefile | |
pgs_api.h | |
pgs.c | |
pgs.py | |
pgscript.py | |
protocol.h | |
py.h | |
README.md | |
sock.h |