Hi. Am 23.10.2018 um 09:04 schrieb Imam Toufique: > I am looking for some help on how to write the following apache proxypass > rules > in HAproxy. Not to mention I am at a bit of loss with my first try :-) . > Here > are my current proxypass rules: > > ProxyPass http://10.1.100.156:8000/jhub > ProxyPassReverse http://10.1.100.156:8000/jhub
Well ProxyPass and ProxyPassReverse do a lot of thinks not just rewrites, as mentioned in the doc https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypassreverse > <LocationMatch > "/jhub/(user/[^/]*)/(api/kernels/[^/]+/channels/websocket)(.*)"> > ProxyPassMatch ws://10.1.100.156:8000/jhub/$1/$2$3 > ProxyPassReverse ws://10.1.100.156:8000/jhub/$1/$2$3 > </LocationMatch> > > As I am not well versed in the massive HAproxy configuration guide, if any of > you can give me a hand with this, I would very much appreciate it. I'm also not "that" expert but I would try the following, untested. ### defaults mode http log global #... maybe some other settings timeout tunnel 10h frontend https_001 #... maybe some other settings acl websocket path_beg /jhub #... maybe some other acls use_backend websocket_001 if websocket backend websocket_001 reqrep "^([^\ :]*) /jhub/(user/[^/]*)/(api/kernels/[^/]+/channels/websocket)(.*)" "/jhub/\1/\2\3" # You will need to replace the first column with the response from the # backend response # rspirep "^Location: /jhub/(user/[^/]*)/(api/kernels/[^/]+/channels/websocket)(.*)" "Location: /jhub/\1/\2\3" # OR # http-response replace-header Location "/jhub/(user/[^/]*)/(api/kernels/[^/]+/channels/websocket)(.*)" "/jhub/\1/\2\3" # add some checks server ws_01 10.1.100.156:8000 check ### Here are some links which may help you also. https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy/ https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#4-reqirep https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#4-rspirep I would run haproxy in Debug mode and see how the request pass haproxy and adopt the config. It would be nice when you show us the working conf ;-) It would be nice to have a http-request replace-uri <match-regex> <replace-fmt> to replace the reqrep. > thanks Hth Aleks