opnsense / opnsense/plugins

net/haproxy: Add timeout tunnel field to backend pool configuration

Open
#5,376 2 comments 2 reactions 1 assignee View on GitHub

@fraenki is already working on this.

Since Apr 7, 2026.

feature
Dominant language
PHP
Stars
1.2k
Forks
863
Avg merge
2d 6h
Merged PRs (30d)
10

Description

The HAProxy plugin currently exposes timeout client, timeout server, timeout connect, and timeout check as GUI fields, but timeout tunnel is missing.

timeout tunnel is essential for long-lived bidirectional TCP connections such as AMQP (RabbitMQ), MQTT, and WebSockets. Without it, these connections are governed by timeout server, which causes HAProxy to terminate idle connections prematurely — even when application-level heartbeats are active.

The current workaround is to inject timeout tunnel 3600s via the "Option pass-through" advanced field, but this is not discoverable for most users and leads to hard-to-diagnose connection drops.

HAProxy documentation reference:

timeout tunnel: Set the maximum inactivity time on the client and server side for tunnels. This timeout applies after a bidirectional tunnel has been established between a client and a server, such as after an HTTP CONNECT request or after a WebSocket connection upgrade.

https://docs.haproxy.org/3.1/configuration.html#4.2-timeout%20tunnel

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.