Commit Graph

125 Commits

Author SHA1 Message Date
Aaron Friel
428dceaf69 Block entropy 0.2.2.2 as it fails to build on my system. 2013-08-21 09:53:51 -05:00
Aaron Friel
4758633573 Support fully qualified domain names ending in a dot. 2013-08-16 11:52:38 -05:00
Aaron Friel
3c85e21dab Merge upstream and bump to 0.4.1 - add wildcard hostname support.
Wildcard hostnames are now supported in Keter, with partial RFC2818 support.

Wildcard hostnames can have exceptions, can be specified at arbitrary depths,
and are non-recursive. `*.example.com` will match `foo.example.com` but not
`foo.bar.example.com`. Likewise, `*.*.example.com` will only match the latter,
not the former.

The keter.cabal is modified to build the example app.

Internal string usage is made more homogeneous to use Data.Text. Despite this,
internationalized domain names are not yet supported unless entered in config
files as punycode.
2013-08-04 19:08:27 -05:00
Michael Snoyman
f1c1f3255b Fix some warnings 2013-06-04 09:42:54 +03:00
Michael Snoyman
d8b33c96b6 Remove another usage of encode 2013-06-04 09:41:22 +03:00
Michael Snoyman
47cb011a52 IP address headers #8 2013-06-03 14:50:29 +03:00
Michael Snoyman
e32dca73cf Use WAI proxying 2013-06-03 14:50:29 +03:00
Michael Snoyman
7ec7275669 Avoid encode from system-filepath (is not cross-platform safe) 2013-06-03 14:49:57 +03:00
Michael Snoyman
a72eac5c15 Switch to fsnotify 2013-06-03 14:49:57 +03:00
Michael Snoyman
e59fb4ad85 Merge pull request #16 from manny-fp/master
Remove upper bound on http-reverse-proxy
2013-05-29 06:09:18 -07:00
Emanuel Borsboom
b7124b8181 Remove upper bound on http-reverse-proxy 2013-05-29 05:57:41 -07:00
Michael Snoyman
3f8cc81189 HUP signal to refresh apps #15 2013-05-29 09:46:25 +03:00
Michael Snoyman
8bafce2646 Merge pull request #14 from AaronFriel/master
Add a configurable timeout to ReverseProxy, fix optional ssl
2013-04-17 23:06:10 -07:00
Aaron Friel
9dc7ed9b56 Remove unneeded imports in ReverseProxy 2013-04-16 13:35:32 -05:00
Jenkins
0e5cf2e35a Add configurable timeout. 2013-04-16 12:57:39 -05:00
Michael Snoyman
b00f0756a1 TLS bump for #13 2013-04-02 11:30:45 +03:00
Michael Snoyman
0ffe056d01 Version bump 2013-04-02 10:00:03 +03:00
Michael Snoyman
1a6bcd3a05 wai version bump 2013-04-02 09:57:01 +03:00
Michael Snoyman
0cc062f406 Merge branch 'master' of https://github.com/AaronFriel/keter 2013-04-02 09:56:02 +03:00
Aaron Friel
c4463a03d1 Fixes for working with legacy servers that poorly handle chunked transfers.
Essentially, some servers when receiving a chunked transfer are observed to
behave poorly on the response side when receiving a chunked encoded request
body from the client.
2013-03-31 18:35:10 -05:00
Aaron Friel
e8b6c7c7f6 Debugging - print chunk sizes of HTTP bodies through proxy 2013-03-24 13:33:36 -05:00
Aaron Friel
6a8fb4db82 Demonstrate issue with consuming last "chunk" from http-conduit.
This puts the nail in the coffin, altering the integer passed to isolate will
varyingly cause the response to error out and never reach the second "print"
or cause Keter to respond with a truncated message.
2013-03-23 12:50:37 -05:00
Aaron Friel
b328081daa Demonstrates issue with consuming request from http-conduit.
This attempts to consume the request from http-conduit by using $$+- and
printing a string before and after. The "after" never happens under the
following response header conditions:

  1. HTTP/1.1
  2. Connection: Close
  3. *no* Content-Length
  4. *no* Transfer-Encoding
2013-03-23 12:39:21 -05:00
Aaron Friel
ccccd9f252 Experimental support for legacy / malformed responses from proxied server.
This is entirely to support behavior of broken web servers that might be
proxied.

The culprit, in this case, is a Jenkins server on Ubuntu 12.04 (installed using
their repositories and running in the default Servlet container). This server
for whatever reason generates responses that have this rare ill-formed set of
headers:

  HTTP/1.1 200 OK
  Connection: Close

With *no content-length* and *no transfer-encoding*.

So this is an initial attempt at working around this.
2013-03-23 03:54:57 -05:00
Michael Snoyman
8f9d6defd1 Added .travis.yml 2013-03-21 10:06:54 +02:00
Michael Snoyman
cb744ced60 network-conduit-tls bump 2013-03-21 10:04:28 +02:00
root
a382522580 Clean up a comment from an earlier version of the code. 2013-03-20 00:24:48 -05:00
root
df38b36b59 Add examples of reverse proxy and header rewriting to configs. 2013-03-20 00:18:10 -05:00
root
03dbc0807d Built-in reverse proxy now supports rewriting headers
This is necessary for using Keter as a front-end to other web
services that may require hacks like Jenkins does, where the
"Location" header needs to be rewritten to use https on every
response.

Example:

```
root: ..
port: 80
ssl:
  # host:
  port:
  key:
  certificate:
reverse-proxy:
  - reversed-host: jenkins-internal.corp.example.com
    reversed-port: 8080
    reversing-host: jenkins.example.com
    ssl: False
    rewrite-response:
      - header: Location
        from: ^http://jenkins.example.com
        to: https://jenkins.example.com
```
2013-03-20 00:01:43 -05:00
root
ee569afc0e Add cabal sandbox files to git ignore 2013-03-17 00:44:17 -05:00
root
58b921866a Add example in README.md for Keter reverse proxy.
This is related to previous commit.
2013-03-16 16:39:38 -05:00
root
a2475db419 Add static reverse proxy support for Keter.
No longer have to set up keter bundles for mighttpd or other proxies.
2013-03-16 16:36:57 -05:00
Michael Snoyman
5cda4998db wai 1.4 2013-02-18 18:46:06 +02:00
Michael Snoyman
cb6f9f4e86 conduit 1.0 2013-02-18 10:47:46 +02:00
Michael Snoyman
02d9e8c0ad Version bump 2013-02-13 12:56:55 +02:00
Michael Snoyman
41fbac9c07 Merge pull request #10 from Tehnix/patch-1
Keter fails to build if tar < 0.4
2013-02-13 02:56:19 -08:00
Christian Kjær Laustsen
c6be7660d6 Keter fails to build if tar < 0.4
Keter fails to install when tar is too old. It outputs:

Keter/App.hs:161:38: 
    Not in scope: type constructor or class `Tar.FormatError'
2013-02-13 01:06:49 +01:00
Michael Snoyman
9e1b46a66f Updated setup-keter.sh 2013-01-30 11:43:30 +02:00
Michael Snoyman
03bb4ba811 Version bump 2013-01-28 10:12:50 +02:00
Michael Snoyman
36469f703a App itself is now optional 2013-01-28 09:09:02 +02:00
Michael Snoyman
ae3005ac65 Version bump 2013-01-02 18:33:30 +02:00
Imran Hameed
1aba8aa4fa support default bundles
keter bundles configured with a primary hostname of "*" will serve as
the default target for all requests that aren't associated with an
explicit host mapping

this is useful when running keter as a deployment manager for a single
application on multiple machines with distinct hostnames behind a
load-balancing reverse proxy that modifies the http host header:
cluster-wide deployments no longer require the generation of a unique
keter bundle for each machine

managing two separate wildcard applications with the same keter instance
will result in an obvious race
2013-01-02 06:55:15 -08:00
Michael Snoyman
855ae91a99 Merge pull request #5 from solidsnack/master
Simplify use of Bash script for setup
2012-12-29 09:15:09 -08:00
Jason Dusek
17843e9239 Quote variable reference (you never know :). 2012-12-28 14:29:09 +00:00
Jason Dusek
5ef3005eac Move setting of diagnostic/error flags into script. 2012-12-28 14:27:55 +00:00
Michael Snoyman
894607bc15 Version bump 2012-12-27 11:53:34 +02:00
Michael Snoyman
2fd2919640 Correctly set UID/GID on all created folders (#4) 2012-12-27 11:52:55 +02:00
Michael Snoyman
54dbe11845 Removed out-of-date technical details 2012-12-27 10:38:38 +02:00
Michael Snoyman
02a85413aa Place process tracker in its own process group 2012-11-19 12:11:31 +02:00
Michael Snoyman
c1e49dc1cf Kill processes when Keter shuts down (#3) 2012-11-19 10:31:40 +02:00