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

Reply via email to