morningman opened a new pull request, #47776: URL: https://github.com/apache/doris/pull/47776
### What problem does this PR solve? Previously, when enabling proxy protocol support, the client can not connect to FE directly, can only through proxy like haproxy or nginx with proxy protocol enabled. This is because for common mysql protocol, the first handshake packet is send by server side, but if proxy protocol is enabled, the client side will send a proxy protocol header message first, and the server side will parse this message, then do the following handshake. So if a client try to connect to proxy protocol enabled server without proxy protocol header message, the server side will try waiting for the header message, and the connection is blocked. This PR mainly changes: If server side enable the proxy protocol, the client can connect to the server both directly and through proxy. How to achieve that: When a new connection arrived and Doris enable the proxy protocol, Doris server with try to read one bytes from the channel, if read bytes is 0, we consider it as a "not-proxy-protocol", otherwise, try parsing the proxy protocol header message as usual. I've tested it with haproxy, all works well ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: https://github.com/apache/doris-website/pull/1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org