Commit Graph

119 Commits

Author SHA1 Message Date
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
3f8cc81189 HUP signal to refresh apps #15 2013-05-29 09:46:25 +03: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
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
root
a382522580 Clean up a comment from an earlier version of the code. 2013-03-20 00:24:48 -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
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
36469f703a App itself is now optional 2013-01-28 09:09:02 +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
2fd2919640 Correctly set UID/GID on all created folders (#4) 2012-12-27 11:52:55 +02:00
Michael Snoyman
c1e49dc1cf Kill processes when Keter shuts down (#3) 2012-11-19 10:31:40 +02:00
Michael Snoyman
93676eeb07 Slightly more helpful error messages 2012-11-04 10:35:21 +02:00
Michael Snoyman
bd876edd3a setuid support 2012-10-24 16:31:18 +02:00
Michael Snoyman
52971e4b6f Removed host list on Keter welcome page 2012-10-21 07:11:46 +02:00
Michael Snoyman
b0c173a8c1 Host name redirects 2012-10-21 07:07:26 +02:00
Michael Snoyman
99739e3f84 Slightly better error message 2012-10-21 06:51:35 +02:00
Michael Snoyman
30804ae341 unix-process-conduit 0.2 2012-10-16 21:21:11 +02:00
Michael Snoyman
da6ea6735c onException killProcess 2012-10-16 15:13:26 +02:00
Michael Snoyman
bc095450b2 CloseOnExec for creating files
This should solve the text file busy issue. The problem was that while
one green thread was writing a file to disk, another would already be
forking a process for executing a separate app. That new process would
retain a write FD to the file being created, which prevented that file
from eventually being executed.
2012-10-15 14:35:43 +02:00
Michael Snoyman
cbd0f9d19e New static hosts format 2012-10-14 18:17:01 +02:00
Michael Snoyman
6955fe93e0 static-hosts 2012-10-12 12:59:46 +02:00
Michael Snoyman
a16f532880 extra-hosts 2012-10-12 12:17:00 +02:00
Michael Snoyman
e0fa8d7bac Avoid Tar.unpack 2012-10-12 12:02:58 +02:00
Michael Snoyman
3a54ae43af network-conduit-tls and unix version bumps 2012-10-11 10:25:17 +02:00
Michael Snoyman
309ee985b0 unix-process-conduit 2012-10-04 19:16:45 +02:00
Michael Snoyman
841e2ab9ab New network-conduit 2012-10-04 18:26:21 +02:00
Michael Snoyman
f5656c660c network-conduit-tls and http-reverse-proxy 2012-10-02 21:57:27 +02:00
Michael Snoyman
18cc6e3a9e Use entire cert chain 2012-09-14 07:05:06 +03:00
Michael Snoyman
20401ec6d4 Handle incomplete HTTP headers in single chunk 2012-09-14 07:04:03 +03:00
Michael Snoyman
50e73b2b0c Code fix 2012-09-14 06:46:13 +03:00
Michael
da1b03b1d3 ssl option for each app 2012-09-14 06:29:03 +03:00
Michael Snoyman
1295a1838d Sanitize PostgreSQL names 2012-08-22 19:58:16 +03:00
Michael Snoyman
fe44d638e9 Replace onException with finally 2012-08-15 18:30:18 +03:00
Michael Snoyman
0cb1d5b2a0 Initial SSL support 2012-08-09 18:12:32 +03:00
Michael Snoyman
80798aafd3 Initial built-in reverse proxy (no Nginx required) 2012-08-06 17:44:41 +03:00
Michael Snoyman
c390d045d4 Config file (#1) 2012-05-29 05:30:59 +03:00
Michael Snoyman
e23042e0aa X-Real-IP 2012-05-24 19:26:12 +03:00
Michael Snoyman
833305e1ee Attaching new process message 2012-05-22 21:49:11 +03:00
Michael Snoyman
ddcae7adc5 A few more minor tweaks 2012-05-17 11:47:54 +03:00
Michael Snoyman
4053463dd2 Minor fixes 2012-05-17 11:42:41 +03:00
Michael Snoyman
9ff3365bcd Rate limiting on process restart 2012-05-17 10:59:17 +03:00
Michael Snoyman
00a377ce26 Logger does not print ThreadKilled exceptions 2012-05-17 10:01:48 +03:00
Michael Snoyman
fc59cd75ec Improved log messages 2012-05-17 09:39:16 +03:00
Michael Snoyman
c8b26a42ec Full logging 2012-05-17 09:32:11 +03:00
Michael Snoyman
3c4ad2799f LogFile 2012-05-17 07:15:25 +03:00
Michael Snoyman
f03367d849 Converted Keter.Main 2012-05-15 11:38:54 +03:00
Michael Snoyman
b0a09ca626 Converted Keter.App 2012-05-15 11:19:03 +03:00
Michael Snoyman
3d5c7dc01e Nginx converted 2012-05-15 10:49:20 +03:00
Michael Snoyman
faaba90547 Postgres uses Keter.Prelude 2012-05-14 12:26:20 +03:00
Michael Snoyman
05b5dfeec2 TempFolder uses new prelude 2012-05-14 11:18:09 +03:00
Michael Snoyman
3a3edc9431 KIO 2012-05-14 11:03:57 +03:00
Michael Snoyman
3837c68c44 Started Keter.Prelude 2012-05-14 10:15:50 +03:00
Michael Snoyman
9da35dd0aa PostgreSQL 2012-05-11 11:42:56 +03:00
Michael Snoyman
1554bb9196 File watching: it all works 2012-05-11 11:29:25 +03:00
Michael Snoyman
1686e0938b Fix build 2012-05-11 10:40:01 +03:00
Michael Snoyman
3054f5f81d Keter.App 2012-05-11 07:38:05 +03:00
Michael Snoyman
2e6089212f tempfolder 2012-05-08 15:18:06 +03:00
Michael Snoyman
53aa705d2f setupDBInfo 2012-05-08 15:04:46 +03:00
Michael Snoyman
452f24d20e Added Postgres module 2012-05-06 19:09:37 +03:00
Michael Snoyman
379359c779 Keter.Process 2012-05-06 13:29:18 +03:00
Michael Snoyman
8ee7aa945f Nginx module 2012-05-06 07:21:19 +03:00