server: add proxy protocol support for bind and vhost HTTP/HTTPS listeners#5283
Open
simplysoft wants to merge 2 commits intofatedier:devfrom
Open
server: add proxy protocol support for bind and vhost HTTP/HTTPS listeners#5283simplysoft wants to merge 2 commits intofatedier:devfrom
simplysoft wants to merge 2 commits intofatedier:devfrom
Conversation
Add vhostHTTPSProxyProtocol and vhostHTTPProxyProtocol config options that enable PROXY protocol (v1/v2) parsing on the vhost listeners. When enabled, the real client IP is extracted from the PROXY protocol header sent by an upstream load balancer and used as the source address for proxied connections. The IP flows through the existing StartWorkConn.SrcAddr mechanism to frpc, making it available in X-Forwarded-For headers (https2http/https2https plugins) and via transport.proxyProtocolVersion for raw TCP proxies. Uses the existing github.com/pires/go-proxyproto dependency (already used by frpc for sending proxy protocol to local services).
Add bindProxyProtocol config option that enables PROXY protocol (v1/v2) parsing on the main bind port listener. When enabled, the real client IP is extracted from the PROXY protocol header before protocol multiplexing, preserving the real client IP in the dashboard and connection logs. Uses the existing github.com/pires/go-proxyproto dependency.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (2 files)
Reviewed by gpt-5.4-2026-03-05 · 318,749 tokens |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add vhostHTTPSProxyProtocol and vhostHTTPProxyProtocol config options that enable PROXY protocol (v1/v2) parsing on the bind and vhost listeners.
When enabled, the real client IP is extracted from the PROXY protocol header sent by an upstream load balancer and used as the source address for proxied connections. The IP flows through the existing StartWorkConn.SrcAddr mechanism to frpc, making it available in X-Forwarded-For headers (https2http/https2https plugins) and via transport.proxyProtocolVersion for raw TCP proxies.
Uses the existing github.com/pires/go-proxyproto dependency (already used by frpc for sending proxy protocol to local services).