# Haproxy

Published articles for Haproxy.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Profiling a Yandex Food PHP monolith to identify CPU usage and reduce allocated cores

DevFeed: [Profiling a Yandex Food PHP monolith to identify CPU usage and reduce allocated cores](<https://devfeed.tech/articles/1000-80-cpu-24892.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1078050/>)

Author: m03r (Яндекс)

Published: 2026-09-08T07:31:51Z

Content type: article

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [PHP](<https://devfeed.tech/topics/php.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [eBPF](<https://devfeed.tech/topics/ebpf.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [ebpf](<https://devfeed.tech/tags/ebpf.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [linux](<https://devfeed.tech/tags/linux.md>), [perforator](<https://devfeed.tech/tags/perforator.md>), [php](<https://devfeed.tech/tags/php.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

A backend developer describes investigating unexpectedly high CPU usage in a legacy PHP monolith at Yandex Food. By profiling the application with Perforator and its PHP support, the investigation examined why CPU consumption was unusually high and how the allocated capacity could be reduced.

### Source excerpt

Всем привет, меня зовут Миша, и я бэкенд-разработчик в платформе Яндекс Еды. Я уже рассказывал, как мы анализировали наш PHP-монолит и вынесли из него процессинг заказов, и с тех пор роль этого легаси заметно уменьшилась. Заодно туда стали писать гораздо меньше нового кода, релизы стали реже, и он спокойненько себе работал, не привлекая лишнего внимания. Так оно бы и продолжалось, но тут случилась повышенная нагрузка и необходимость зарезервировать побольше мощностей для беспроблемной обработки повышенного спроса. Монолит справился на отлично, но самое интересное случилось потом: возвращая выделение ресурсов к прежним значениям, я случайно обратил внимание, что RPS в пиковые вечерние часы как-то подозрительно совпадает с количеством ядер CPU, выделенных на весь монолит. Количество выделенных ядер, конечно, ещё ничего не означает, поэтому я полез смотреть реальное потребление процессорного времени, сложив CPU usage по всем подам. С помощью нехитрой арифметики я обнаружил, что 100% загрузки одного ядра приходятся на 2,5 RPS. Какое-то время я находился в состоянии глубокого изумления, после чего решил, что это никуда не годится, и отправился в увлекательное приключение на 20 минут. Немного спойлеров: дело оказалось далеко не только в PHP. Читать далее

## Keycloak 26.7.0 released

DevFeed: [Keycloak 26.7.0 released](<https://devfeed.tech/articles/keycloak-26-7-0-released-31784.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2026/07/keycloak-2670-released>)

Author: Keycloak Team

Published: 2026-07-09T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [API](<https://devfeed.tech/topics/api.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Security](<https://devfeed.tech/topics/security.md>), [OAuth 2.0](<https://devfeed.tech/topics/oauth2.md>), [saml](<https://devfeed.tech/topics/saml.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [high-availability](<https://devfeed.tech/tags/high-availability.md>), [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [oauth-2-0](<https://devfeed.tech/tags/oauth-2-0.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [security](<https://devfeed.tech/tags/security.md>), [sso](<https://devfeed.tech/tags/sso.md>), [traefik](<https://devfeed.tech/tags/traefik.md>)

### AI overview

Keycloak 26.7.0 introduces preview support for SCIM-based user provisioning and simplified multi-cluster high availability, along with enhanced HAProxy and Traefik reverse-proxy guidance and step-up authentication for SAML clients. The release also adds a more secure, OAuth 2.0-compliant Identity Brokering API v2, while V1 remains enabled by default but is deprecated. OID4VCI improvements remain experimental.

### Source excerpt

To download the release go to Keycloak downloads. Highlights This release features new capabilities for users and administrators of Keycloak. The highlights of this release are: Automate user provisioning with the SCIM API (preview) Simplified multi-cluster high availability without external caches (preview) Enhanced reverse proxy guides with blueprints for HAProxy and Traefik Step-up authentication for SAML clients Read on to learn more about each new feature. If you are upgrading from a previous release, also review the changes listed in the upgrading guide. Security and Standards Stronger security for the Identity Brokering API The Identity Brokering API allows applications to retrieve tokens obtained from external identity providers during federated login. Version 2 of this API replaces the legacy V1 with a more secure and standards-compliant design: Client-level authorization -- access to external tokens is controlled per client using dedicated settings (Allow retrieve external tokens and an identity provider allow list) instead of assigning broker roles to individual users. Confidential clients only -- public clients are rejected, ensuring that only authenticated clients can retrieve external tokens. OAuth 2.0 compliant -- the endpoint uses POST and returns standard JSON responses with access_token, error, and error_description fields. Session-based token storage -- a new Store token in session option keeps tokens in the user session for faster access, with automatic cleanup on session expiry. Database storage remains available for persistence across sessions. V2 is now supported but disabled by default. V1 is deprecated but still enabled by default for backward compatibility. In a future release, V1 will be removed and V2 will become the default. For more information, see the Identity Brokering APIs chapter in the Server Developer Guide. Progress on Verifiable Credentials (OID4VCI) (experimental) Verifiable Credentials (OID4VCI) allow organizations to issue tampe

## Essential Non Functional Requirements

DevFeed: [Essential Non Functional Requirements](<https://devfeed.tech/articles/essential-non-functional-requirements-34676.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/essential-non-functional-requirements>)

Author: Saurabh Dashora

Published: 2026-07-07T08:33:34Z

Content type: tutorial

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [Requirements](<https://devfeed.tech/topics/requirements.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [data-replication](<https://devfeed.tech/tags/data-replication.md>), [failover](<https://devfeed.tech/tags/failover.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [latency](<https://devfeed.tech/tags/latency.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [requirements](<https://devfeed.tech/tags/requirements.md>)

### AI overview

This tutorial explains non-functional requirements as quality attributes that determine how software systems behave under real-world conditions. It covers availability, latency, scalability, and durability, with implementation approaches including load balancers, health checks, failover, CDNs, data replication, horizontal scaling, Kubernetes, and concurrent API design.

### Source excerpt

Don't miss them

## Key Components of a Production Web Application

DevFeed: [Key Components of a Production Web Application](<https://devfeed.tech/articles/key-components-of-a-prod-web-application-34686.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/key-components-of-a-prod-web-application>)

Author: Saurabh Dashora

Published: 2026-06-09T07:56:22Z

Content type: article

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [web applications](<https://devfeed.tech/topics/web-applications.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [ddos](<https://devfeed.tech/tags/ddos.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This article provides a high-level overview of components used in production web applications, including CI/CD pipelines, DNS resolution, load balancers, reverse proxies, and content delivery networks. It explains their roles in deployment, availability, scalability, performance, and security.

### Source excerpt

A big picture view...

## Chainguard Image now available for HAProxy

DevFeed: [Chainguard Image now available for HAProxy](<https://devfeed.tech/articles/chainguard-image-now-available-for-haproxy-12946.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/chainguard-image-now-available-for-haproxy>)

Published: 2023-02-09T00:00:00Z

Content type: release

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Security](<https://devfeed.tech/topics/security.md>), [vulnerability scanning](<https://devfeed.tech/topics/vulnerability-scanning.md>)

Tags: [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [containers](<https://devfeed.tech/tags/containers.md>), [cosign](<https://devfeed.tech/tags/cosign.md>), [cves](<https://devfeed.tech/tags/cves.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [haproxy-images](<https://devfeed.tech/tags/haproxy-images.md>), [image](<https://devfeed.tech/tags/image.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [minimal-image](<https://devfeed.tech/tags/minimal-image.md>), [sboms](<https://devfeed.tech/tags/sboms.md>), [secure-by-default](<https://devfeed.tech/tags/secure-by-default.md>), [secure-images](<https://devfeed.tech/tags/secure-images.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [vulnerability-scanning](<https://devfeed.tech/tags/vulnerability-scanning.md>), [wolfi](<https://devfeed.tech/tags/wolfi.md>)

### AI overview

Chainguard announces a Chainguard Image for HAProxy. Built on Wolfi with a hardened toolchain, the image is designed to reduce image size and known vulnerabilities while providing binaries built from source, SBOMs, signatures, and SLSA Build Level 2 provenance.

### Source excerpt

HAProxy Chainguard Image now available: Built on Wolfi, up to 90% smaller, aims for 0-known CVEs, and is built with hardened toolchain, making it memory safe.

## Varnish to Redis Migration

DevFeed: [Varnish to Redis Migration](<https://devfeed.tech/articles/varnish-to-redis-migration-26226.md>)

Original publisher: [Read original article](<https://medium.com/groupon-eng/varnish-to-redis-migration-887ad6d805d2?source=rss----5c13a88f9872---4>)

Author: Ravikumar

Published: 2022-03-22T15:39:20Z

Content type: article

Language: en

Sources: [Groupon Engineering -- Medium](<https://devfeed.tech/sources/groupon-engineering-medium.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Amazon EKS](<https://devfeed.tech/topics/amazon-eks.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [cache-invalidation](<https://devfeed.tech/tags/cache-invalidation.md>), [caching](<https://devfeed.tech/tags/caching.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [distributed-transaction](<https://devfeed.tech/tags/distributed-transaction.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [migration](<https://devfeed.tech/tags/migration.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [redis](<https://devfeed.tech/tags/redis.md>), [varnish](<https://devfeed.tech/tags/varnish.md>)

### AI overview

Groupon describes migrating its Varnish caching infrastructure to Redis while moving application workloads to AWS EKS. The article focuses on a high-traffic place read service, the limitations of TTL-based cache invalidation, and the planned shift to event-based expiration.

### Source excerpt

At Groupon, we are in the process of migrating our app workloads to AWS EKS. As part of the migration, we are also in the process of re-architecting our services to make them cloud & Kubernetes optimised. In this article, we will focus on the impact of cloud migration on Varnish caching at Groupon. For the uninitiated, Varnish is a high-performance reverse caching proxy. For simplicity, you can think of it as a general proxy such as HAProxy or Nginx with caching support so that it doesn't have to go to a backend service every time it receives a request. Internally, Varnish cache uses pthreads heavily(to the tune of 1000s) to serve the requests. In contrast, Redis is single-threaded. Varnish at Groupon & Place Read Service We have been using Varnish for many of our high-traffic services. These read-heavy services get traffic to the tune of millions of RPM. One such service is our place read service which is called on each & every deal page visit; it will be the focus of this article. Place read service stores all the locations a deal can be redeemed. Ex: Redemption location details of the deal https://www.groupon.com/deals/parent-big-littles-3 is highlighted below. Traffic pattern of place read service The service is called more than a billion times a day with peak traffic of ~2 million requests per minute. Current architecture (simplified) The traffic is served by a cluster of 4 Varnish servers (40GB RAM). The current Varnish hit rate is 95%. This is admittedly a low hit rate for a read-heavy service, the main reason being our TTL-based cache invalidation logic. Varnish cache invalidation We are using TTL-based cache invalidation. This usually leads to a problem where Varnish starts bombarding the backend service when most of the keys expire at the same time. Request coalescing is not very helpful when the unique keys count is in millions (which is the case with our service). As a workaround, we use randomised TTLs (between 30 to 60 mins) so that all the keys don't

## How SoundCloud Uses HAProxy with Kubernetes for User-Facing Traffic

DevFeed: [How SoundCloud Uses HAProxy with Kubernetes for User-Facing Traffic](<https://devfeed.tech/articles/how-soundcloud-uses-haproxy-with-kubernetes-for-user-facing-traffic-2048.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//how-soundcloud-uses-haproxy-with-kubernetes-for-user-facing-traffic>)

Published: 2017-12-07T00:00:00Z

Content type: article

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [ingress](<https://devfeed.tech/tags/ingress.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [port](<https://devfeed.tech/tags/port.md>), [routing](<https://devfeed.tech/tags/routing.md>), [ssl](<https://devfeed.tech/tags/ssl.md>)

### AI overview

SoundCloud describes replacing its homegrown deployment platform with Kubernetes and addressing the challenge of routing user traffic to dynamically moving pods. Because much of its infrastructure is physical, SoundCloud uses HAProxy servers to terminate SSL and forward requests to internal services. The article explains an approach that uses Kubernetes Services of type NodePort to expose applications to the HAProxy layer.

### Source excerpt

A little less than two years ago, SoundCloud began the journey of replacing our homegrown deployment platform, Bazooka, with Kubernetes. Kubernetes automates deployment, scaling, and management of containerized applications.

## Anatomy of an HAProxy \<-\> Java TLS bug

DevFeed: [Anatomy of an HAProxy \<-\> Java TLS bug](<https://devfeed.tech/articles/anatomy-of-an-haproxy-java-tls-bug-15500.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/anatomy-of-an-haproxy-java-tls-bug>)

Author: Steven Davidovitz

Published: 2017-03-27T19:23:27Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Java](<https://devfeed.tech/topics/java.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [client](<https://devfeed.tech/topics/client.md>), [servers](<https://devfeed.tech/topics/servers.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [bug](<https://devfeed.tech/tags/bug.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [health-checks](<https://devfeed.tech/tags/health-checks.md>), [java](<https://devfeed.tech/tags/java.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [openssl](<https://devfeed.tech/tags/openssl.md>), [servers](<https://devfeed.tech/tags/servers.md>), [ssl](<https://devfeed.tech/tags/ssl.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

This article investigates a CPU saturation problem caused by HAProxy SSL health checks against Java services. It explains that Java invalidated TLS sessions after unclean connection closures, preventing session resumption and forcing expensive full key exchanges.

### Source excerpt

Adding SSL health checks to HAProxy uncovered an interesting interaction with Java servers.

## 10x: Service Discovery at Clay.io

DevFeed: [10x: Service Discovery at Clay.io](<https://devfeed.tech/articles/10x-service-discovery-at-clay-io-35614.md>)

Original publisher: [Read original article](<https://zolmeister.com/2015/02/10x-service-discovery-at-clay-io.html>)

Author: Zoli Kahan

Published: 2015-02-17T06:00:00Z

Content type: tutorial

Language: en

Sources: [Zolmeister](<https://devfeed.tech/sources/zolmeister.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [docker](<https://devfeed.tech/tags/docker.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial describing Clay.io's service-discovery architecture using Docker, Synapse, and a local HAProxy instance. Synapse dynamically configures HAProxy to route requests to services in an Amazon EC2 cluster, while Ansible supplies local IP and port configuration to services.

### Source excerpt

10x: Service Discovery at Clay.io Architecture Service Oriented Architectures can be one of the most iterable and available software configurations for building almost any product. There are many challenges that come with these systems, probably the biggest of which is service discovery. This is how your services will communicate with each other. For our service discovery, we turn again to Docker.

## Scaling database with Django and HAProxy

DevFeed: [Scaling database with Django and HAProxy](<https://devfeed.tech/articles/scaling-database-with-django-and-haproxy-19985.md>)

Original publisher: [Read original article](<http://engineering.hackerearth.com/2013/10/07/scaling-database-with-django-and-haproxy/>)

Published: 2013-10-07T00:00:00Z

Content type: article

Language: en

Sources: [HackerEarth](<https://devfeed.tech/sources/hackerearth.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Django](<https://devfeed.tech/topics/django.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Availability](<https://devfeed.tech/topics/availability.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [availability](<https://devfeed.tech/tags/availability.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [django](<https://devfeed.tech/tags/django.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [replication](<https://devfeed.tech/tags/replication.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [uptime](<https://devfeed.tech/tags/uptime.md>)

### AI overview

This article describes HackerEarth's effort to scale a Django application whose MySQL database became a major bottleneck as data volume and request rates grew. The team rearchitected the system by sharding the database, adding database routers and Django ORM wrappers, placing HAProxy in front of the MySQL databases, and optimizing the codebase. It also discusses read replicas, routing writes to the master, and avoiding stale data for reads that require current results.

### Source excerpt

###MySQL - Primary data store At HackerEarth, we use MySQL database as the primary data store. We have experimented with a few NoSQL databases on the way, but the results have been largely unsatisfactory. The distributed databases like MongoDB or CouchDB aren't very scalable or stable. Right now, our status monitoring services use RethinkDB for storing the data in JSON format and that's all for the NoSQL database usage right now. With the growing data and number of requests/sec, it turns out that the database becomes the major bottlneck to scale the application dynamically. At this point if you are thinking that there are mythical (cloud) providers who can handle the growing need of your application, you can't be more wrong. To make the problem even harder, you can't spin a new database whenever you want to just like your frontend servers. To achieve a horizontal scalability at all levels, it requires massive rearchitecture of the system while being completely transparent to the end user. This is what a part of our team has focussed on in last few months, resulting in very high uptime and availability. The master (and only) MySQL database had started being under heavy load recently. We thought we will delay any scalability at this level till the single database could handle the load, and we will work on other high priority things. But that was not supposed to go as planned and we experienced a few downtimes. After that we did a rearchitecture of our application, sharded the database, wrote database routers and wrappers on top of django ORM, put HAProxy load balancer infront of the MySQL databases, and refactored our codebase to optimize it significantly. The image below shows a part of the architecture we have at HackerEarth. Many other components have been omitted for simplicity. ###Database slaves and router The idea was to create read replicas and route the write queries to master database and read queries to slave (read replica) databases. But that was not so si

## Proxy socket.io and nginx on the same port, over SSL

DevFeed: [Proxy socket.io and nginx on the same port, over SSL](<https://devfeed.tech/articles/proxy-socket-io-and-nginx-on-the-same-port-over-ssl-35445.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/proxy-socket-io-and-nginx-on-the-same-port-over-ssl/>)

Author: Graham King

Published: 2011-12-22T22:32:26Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Socket.IO](<https://devfeed.tech/topics/socket-io.md>), [nginx](<https://devfeed.tech/topics/nginx.md>), [proxy](<https://devfeed.tech/topics/proxy.md>), [SSL](<https://devfeed.tech/topics/ssl.md>), [realtime](<https://devfeed.tech/topics/realtime.md>), [Web](<https://devfeed.tech/topics/web.md>), [Django](<https://devfeed.tech/topics/django.md>), [backends](<https://devfeed.tech/topics/backends.md>)

Tags: [django](<https://devfeed.tech/tags/django.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [http](<https://devfeed.tech/tags/http.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [realtime](<https://devfeed.tech/tags/realtime.md>), [server](<https://devfeed.tech/tags/server.md>), [socket](<https://devfeed.tech/tags/socket.md>), [software](<https://devfeed.tech/tags/software.md>), [ssl](<https://devfeed.tech/tags/ssl.md>)

### AI overview

A tutorial for running Socket.IO realtime traffic and a Django web application on the same SSL port. It uses stunnel to terminate SSL, HAProxy to route WebSocket traffic to Node.js and web traffic to nginx, and nginx with Gunicorn to serve the Django application.

### Source excerpt

Streamline your SSL setup: Realtime and web on one port.