Commits
- Commit:
c92b802b6a78a4281f66b02d935391086959dc4b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add `param' keyword
- Commit:
0d047efcb40ec311da407e0b705a92f764c96338
- From:
- Omar Polo <op@omarpolo.com>
- Date:
refactor fastcgi block
- Commit:
8ad1c570242cd93f0802931621b49b2510b338e7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fastcgi: a first implementation
Not production-ready yet, but it's a start.
This adds a third ``backend'' for gmid: until now there it served
local files or CGI scripts, now FastCGI applications too.
FastCGI is meant to be an improvement over CGI: instead of exec'ing a
script for every request, it allows to open a single connection to an
``application'' and send the requests/receive the responses over that
socket using a simple binary protocol.
At the moment gmid supports three different methods of opening a
fastcgi connection:
- local unix sockets, with: fastcgi "/path/to/sock"
- network sockets, with: fastcgi tcp "host" [port]
port defaults to 9000 and can be either a string or a number
- subprocess, with: fastcgi spawn "/path/to/program"
the fastcgi protocol is done over the executed program stdin
of these, the last is only for testing and may be removed in the
future.
P.S.: the fastcgi rule is per-location of course :)
- Commit:
c705ecb1ba3dd16e302f340a6bce96c0f28879e4
- From:
- Omar Polo <op@omarpolo.com>
- Date:
factorize all "only once" checks
and while there add some more
- Commit:
fdea6aa0bca24f6f947e2126ce101fd59caa7a31
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow ``root'' rule to be specified per-location block
- Commit:
adbe6a6493c0e91fcfc918db8f4b5839a2867b1c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
always use ensure_absolute_path and improve its error message
- Commit:
d06d6f4bba4851cb31464867d83b369d22bf3e2c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
sort tokens
- Commit:
cc8c2901ad544d336374887451dc8c85a5ae1264
- From:
- Omar Polo <op@omarpolo.com>
- Date:
added ``alias'' option to define hostname aliases for a server
- Commit:
48b69cb2dcb0e50409c531d9052c2da134a82eff
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix some logging
- we can't use log_* or fatal() before logger_init
- err -> errx if errno isn't involved
- Commit:
9cc630aa63cfd22553912b5a1fc41a71776cb272
- From:
- Omar Polo <op@omarpolo.com>
- Date:
added ``env'' option to define environment vars for CGI scripts
- Commit:
b8e64ccd44290cdd34bdcd3fd85fb1a9cb7486dd
- From:
- Omar Polo <op@omarpolo.com>
- Date:
list instead of fixed-size array for vhosts and locations
saves some bytes of memory and removes the limit on the maximum number
of vhosts and location blocks.
- Commit:
2c3e53dac6faed4d9502bd3310b4837f0d3112cf
- From:
- Omar Polo <op@omarpolo.com>
- Date:
give each server process its own socket for the executor
this fixes a bug introduced with the prefork mechanics: every server
process shared the same socket, and this would cause a race condition
when multiple server processes asked for a script cgi being executed.
This gives each server process its own socket to talk to the executor,
so the race cannot happen.
- Commit:
793835cb26c39202133c754fb33f8909ebf8fb92
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add `log on/off' to enable/disable logs per-location
- Commit:
49b73ba1ab4be9993532bdecaf14e74f45eca676
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix "first location" bug
reported by devel at datenbrei dot de. The first location would
overwrite the default value for a server, triggering the "`foo' rule
specified more than once" error. This also needed a small tweak on
how we match locations to avoid breaking other tests.
- Commit:
2d34f732f169028f41dc124cafe569c4f0bc788a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
typo