Skip to main content

Webservers Pool

1. Introduction​

The webservers pool is the public (internet) entry point of the infrastructure. These are replicated servers with the same functions.
These servers interface with two networks: the internet service provider's network and the cluster-gateway network.
These machines do not have direct access to the main network of the proto box (box-network) for security reasons.
These internet servers receive requests from the internet and then forward them to the proxy servers (gateway-pool).

infra

Position in the infrastructure:

infra

2. Roles​

The webservers primarily have three functions:

  • Application server with Nginx
  • Management and renewal of the certificate used with Certbot and Let's Encrypt
  • Routing to the internet with Netplan

infra

3. Networking​

This group interfaces with two networks:

  • public-network
    For routing traffic to the internet.
  • gateway-network
    For accessing cluster services.

4. Volumes​

The webserver group has a shared volume that allows sharing configuration files such as:

  • Certificates
  • Nginx configurations

infra

5. High Availability​

High availability is essential at this level, and any point of failure must be excluded.
For this, two floating IPs are created:

  • public-floatingIP: Used to replicate the IP for incoming requests.
  • private-floatingIP: Manages the replication of the internal IP (cluster-gateway) to route outgoing traffic with high availability.

infra

6. Security​

The security of this group is primarily based on:

  • iptables:
    • Incoming ports:
      • 80
      • 443
  • Certificates

7. Applications​

  • Nginx as the application server.
  • Certbot for certificate management.
  • KeepAlived for floating IPs.
  • GlusterFS for clustering volumes.

8. Installation​

The installation of these servers is automated by the framework. They only need to be assigned in the group vars of the webservers_pool.

    webservers_pool:
vars:
output_interface: public-gateway
input_interface: cluster-gateway
# Declaration of floating IPs
vips:
# internet-floatingIP
public-gateway:
virtual_router_id: 1
vip: 192.168.0.33
# internal-floatingIP
cluster-gateway:
virtual_router_id: 2
vip: 192.168.2.254
hosts:
webserver-1:
public-gateway:
# used for configuring KeepAlived
priority: 200
state: MASTER
cluster-gateway:
# used for configuring KeepAlived
priority: 100
state: BACKUP
webserver-2:
public-gateway:
# used for configuring KeepAlived
priority: 100
state: BACKUP
cluster-gateway:
# used for configuring KeepAlived
priority: 200
state: MASTER

9. Summary​

ApplicationStatus
Installation and commissioningDONE
NginxDONE
CertbotDONE
KeepalivedDONE
GlusterFSTODO