Skip to content

[Feature] Support disabling proxy buffering in Reverse Proxy settings for AI streaming / SSE #13636

Description

@alienmoom

1Panel Version

v2.2.5 (Latest)

Please describe your needs or suggestions for improvements

With the rapid adoption of AI / LLM applications (such as OpenAI API reverse proxies, Ollama, Dify, FastGPT, NextChat, Open-WebUI, and AI agent backends), responses are typically delivered via Server-Sent Events (SSE) and continuous streaming.

Currently, when configuring a Reverse Proxy in 1Panel, Nginx/OpenResty enables proxy_buffering by default. There is no GUI option in the Reverse Proxy configuration panel to toggle it off, requiring users to manually edit the website's raw Nginx configuration file.

When proxy_buffering is enabled:

  1. Lagging / Broken Streaming Experience: Nginx buffers response chunks until the buffer is full, preventing real-time typewriter streaming and causing output to appear in large delayed batches.
  2. Connection Interruptions: Long-running AI streaming responses are more susceptible to buffer timeouts or unexpected disconnections.

Please describe the solution you suggest

Add a toggle switch in the Reverse Proxy (反向代理) configuration dialog:

  • UI Option: A switch for Proxy Buffering (or Enable Proxy Buffering, default: On) / Disable Proxy Buffering (SSE / Streaming Support).
  • Generated Configuration: When buffering is disabled, 1Panel should automatically add the following directives to the corresponding location block:
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding on;
proxy_set_header X-Accel-Buffering no;

Additional Information

Disabling buffering for AI chat and SSE is a standard and frequent requirement for modern self-hosted AI services. Adding a GUI toggle will greatly enhance the user experience for developers and homelab users without requiring manual Nginx file hacking.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions