[Haskell-cafe] Happstack basic question

Martin Kiefel mk at nopw.de
Thu Mar 11 09:35:23 EST 2010


On Thu, Mar 11, 2010 at 09:24:05AM -0500, Kyle Murphy wrote:
> You misunderstand his question. He's trying to setup happstack behind a
> reverse proxy running on the same system, so he needs to be able to bind it
> only to the loopback interface (127.0.0.1), as opposed to all the interfaces
> on the system (thereby making it inaccessible from the network unless
> accessed through the proxy). I don't know enough about happstack to answer
> his question, but I can see from the documentation you provided that there
> doesn't seem to be any way to specify address to bind to as Dmitry stated in
> his original e-mail.

But I'm doing exactly that.

Here is some of the code:

main = do

  ...

  s <- socket AF_INET Stream defaultProtocol
  setSocketOption s ReuseAddr 1
  h <- getHostByName "localhost"
  let p = toEnum $ port $ httpConf appConf
  bindSocket s (SockAddrInet p (hostAddress h))
  listen s 10

  -- start the state system
  control <- startSystemState' (store appConf) stateProxy

  -- start the http server
  httpTid <- forkIO $ simpleHTTPWithSocket s (httpConf appConf)

  ...

And then my happstack server is just listening on 127.0.0.1.

To access it, I'm using Apache Proxy.

- Martin

> 
> -R. Kyle Murphy
> --
> Curiosity was framed, Ignorance killed the cat.
> 
> 
> On Thu, Mar 11, 2010 at 07:39, Martin Kiefel <mk at nopw.de> wrote:
> 
> > Hi Dmitry,
> >
> > On Thu, Mar 11, 2010 at 11:38:44AM +0300, Dmitry V'yal wrote:
> > > Hello haskellers,
> > >
> > > I want to host a simple happstack application behind a reverse proxy. So
> > > ideally would be to bind it to localhost only.
> > >
> > > According to
> > >
> > http://hackage.haskell.org/packages/archive/happstack-server/0.4.1/doc/html/Happstack-Server-HTTP-Types.html#t%3AConf
> > > Conf datatyle has only Port field. Does it mean, there is currently no
> > > way to prevent binding happstack to all available interfaces?
> >
> > I think you are looking for simpleHTTPWithSocket [1]. You can use
> > whatever socket you like.
> >
> > >
> > > Regards,
> > > Dmitry
> >
> > Cheers,
> > Martin
> >
> > [1]
> > http://happstack.com/docs/0.4/happstack-server/Happstack-Server-SimpleHTTP.html#v%3AsimpleHTTPWithSocket
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >


More information about the Haskell-Cafe mailing list