mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-02-08 18:20:32 +00:00
Provide the oportunity to specify StroageClass in applications Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
76 lines
3.6 KiB
Markdown
76 lines
3.6 KiB
Markdown
# Managed Nginx Caching Service
|
|
|
|
The Nginx Caching Service is designed to optimize web traffic and enhance web application performance. This service combines custom-built Nginx instances with HAproxy for efficient caching and load balancing.
|
|
|
|
## Deployment infromation
|
|
|
|
The Nginx instances include the following modules and features:
|
|
|
|
- VTS module for statistics
|
|
- Integration with ip2location
|
|
- Integration with ip2proxy
|
|
- Support for 51Degrees
|
|
- Cache purge functionality
|
|
|
|
HAproxy plays a vital role in this setup by directing incoming traffic to specific Nginx instances based on a consistent hash calculated from the URL. Each Nginx instance includes a Persistent Volume Claim (PVC) for storing cached content, ensuring fast and reliable access to frequently used resources.
|
|
|
|
## Deployment Details
|
|
|
|
The deployment architecture is illustrated in the diagram below:
|
|
|
|
```
|
|
|
|
┌─────────┐
|
|
│ metallb │ arp announce
|
|
└────┬────┘
|
|
│
|
|
│
|
|
┌───────▼───────────────────────────┐
|
|
│ kubernetes service │ node
|
|
│ (externalTrafficPolicy: Local) │ level
|
|
└──────────┬────────────────────────┘
|
|
│
|
|
│
|
|
┌────▼────┐ ┌─────────┐
|
|
│ haproxy │ │ haproxy │ loadbalancer
|
|
│ (active)│ │ (backup)│ layer
|
|
└────┬────┘ └─────────┘
|
|
│
|
|
│ balance uri whole
|
|
│ hash-type consistent
|
|
┌──────┴──────┬──────────────┐
|
|
┌───▼───┐ ┌───▼───┐ ┌───▼───┐ caching
|
|
│ nginx │ │ nginx │ │ nginx │ layer
|
|
└───┬───┘ └───┬───┘ └───┬───┘
|
|
│ │ │
|
|
┌────┴───────┬─────┴────┬─────────┴──┐
|
|
│ │ │ │
|
|
┌───▼────┐ ┌────▼───┐ ┌───▼────┐ ┌────▼───┐
|
|
│ origin │ │ origin │ │ origin │ │ origin │
|
|
└────────┘ └────────┘ └────────┘ └────────┘
|
|
|
|
```
|
|
|
|
## Known issues
|
|
|
|
VTS module shows wrong upstream resonse time
|
|
- https://github.com/vozlt/nginx-module-vts/issues/198
|
|
|
|
## Parameters
|
|
|
|
### Common parameters
|
|
|
|
| Name | Description | Value |
|
|
| ------------------ | ----------------------------------------------- | ------- |
|
|
| `external` | Enable external access from outside the cluster | `false` |
|
|
| `size` | Persistent Volume size | `10Gi` |
|
|
| `storageClass` | StorageClass used to store the data | `""` |
|
|
| `haproxy.replicas` | Number of HAProxy replicas | `2` |
|
|
| `nginx.replicas` | Number of Nginx replicas | `2` |
|
|
|
|
### Configuration parameters
|
|
|
|
| Name | Description | Value |
|
|
| ----------- | ----------------------- | ----- |
|
|
| `endpoints` | Endpoints configuration | `[]` |
|