úÎ0Ô.·      Safe-Inferred  !"# !"#  !"#None)How to set the X-Real-IP request header.  Since 0.2.0 <Set it from either X-Real-IP or X-Forwarded-For, if present Set it from the socket' s address. Do not set the header 0Set the X-Real-IP request header with the client's IP address. Default: SIHFromSocket  Since 0.2.0 7Post-process the response body returned from the host.  Since 0.2.1 5The different responses that could be generated by a  waiProxyTo lookup  function.  Since 0.2.0 1Send to the given destination, but use the given 4 modified Request for computing the reverse-proxied 5 request. This can be useful for reverse proxying to 1 a different path than the one specified. By the  user.  Since 0.2.0 Send to the given destination.  Since 0.2.0 %Respond with the given WAI Response.  Since 0.2.0 Host/,port combination to which we want to proxy. CSet up a reverse proxy server, which will have a minimal overhead. DThis function uses raw sockets, parsing as little of the request as  possible. The workflow is:  " Parse the first request headers. < Ask the supplied function to specify how to reverse proxy. ' Open up a connection to the given host/port. + Pass all bytes across the wire unchanged. IIf you need more control, such as modifying the request or response, use . FSends a simple 502 bad gateway error message with the contents of the  exception. Creates a WAI $$ which will handle reverse proxies. HConnections to the proxied server will be provided via http-conduit. As J such, all requests and responses will be fully processed in your reverse L proxy. This allows you much more control over the data sent over the wire, C but also incurs overhead. For a lower-overhead approach, consider  . MMost likely, the given application should be run with Warp, though in theory ' other WAI handlers will work as well. KNote: This function will use chunked request bodies for communicating with I the proxied server. Not all servers necessarily support chunked request Y bodies, so please confirm that yours does (Warp, Snap, and Happstack, for example, do). %GGet the HTTP headers for the first request on the stream, returning on L consumed bytes as leftovers. Has built-in limits on how many bytes it will K consume (specifically, will not ask for another chunked after it receives  1000 bytes). >Convert a WAI application into a raw application, using Warp. & How to reverse proxy. A Left result will run the given  ' , whereas a Right will reverse proxy to the  given host/port. How to reverse proxy. A Left! result will be sent verbatim as  the response, whereas Right will cause a reverse proxy. ;How to handle exceptions when calling remote server. For a  simple 502 error page, use . connection manager to utilize %(     &  %()      !"#$%&'()*+ ,-*./http-reverse-proxy-0.2.1.1Network.HTTP.ReverseProxyPaths_http_reverse_proxydata-default-class-0.0.1Data.Default.Classdef SetIpHeader SIHFromHeader SIHFromSocketSIHNoneWaiProxySettingswpsOnExc wpsTimeoutwpsSetIpHeaderwpsProcessBodyWaiProxyResponseWPRModifiedRequest WPRProxyDest WPRResponse ProxyDestpdHostpdPort rawProxyTo defaultOnExc waiProxyTowaiProxyToSettingswaiToRawcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName wai-1.4.0.2 Network.Wai Application getHeadersnetwork-conduit-1.0.0Data.Conduit.Network$fDefaultWaiProxySettings