1
0
mirror of https://github.com/apache/httpd.git synced 2025-11-06 16:49:32 +03:00
Commit Graph

15 Commits

Author SHA1 Message Date
Jeff Trawick
b6652d949e handle an unfortunate implication of loadable MPMs:
calls to ap_mpm_query() must be deferred until after the register-hooks hook, since that's 
where the MPM registers its mpm-query hook


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@761226 13f79535-47bb-0310-9956-ffa450edef68
2009-04-02 10:05:39 +00:00
Jeff Trawick
82b000731f ap_strchr_p() is the one that takes (protects) a const char *
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@761085 13f79535-47bb-0310-9956-ffa450edef68
2009-04-01 22:10:30 +00:00
Jeff Trawick
0acd50d150 clean up apr_time_from_msec() compatibility macros
* where needed, base on APR_VERSION_AT_LEAST() so we remember what this is about
* where not, axe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@761084 13f79535-47bb-0310-9956-ffa450edef68
2009-04-01 22:06:49 +00:00
Paul Querna
9d85632112 * modules/proxy/mod_serf.c
(hb_server_sort): Use correct variables for sorting.

Noticed by: Rüdiger


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759673 13f79535-47bb-0310-9956-ffa450edef68
2009-03-29 12:42:15 +00:00
Paul Querna
25c888fa96 Add static cluster backend, for very simple configurations.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759476 13f79535-47bb-0310-9956-ffa450edef68
2009-03-28 15:03:01 +00:00
Paul Querna
ab7e6aa87d Add very basic, non-streaming, support for request bodies.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759469 13f79535-47bb-0310-9956-ffa450edef68
2009-03-28 14:31:19 +00:00
Paul Querna
51fa0a1acd - Improve flushing/connection eos logic.
- Use brigade_write instead of immortal buckets that aren't immortal.
- Read HTTP status code from serf.
- Remove extra logging.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759462 13f79535-47bb-0310-9956-ffa450edef68
2009-03-28 13:51:51 +00:00
Paul Querna
a51ec65a24 Work in Progress.
Convert the 100ms timed callback to a single cleanup callback that is added
when the request is ready to finish. Basically works, though it has
some issues with flushing and closing the connection.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759460 13f79535-47bb-0310-9956-ffa450edef68
2009-03-28 13:24:18 +00:00
Paul Querna
c9c5ae3ce6 If the MPM supports serf in its core, use this to drive the proxied request
completely async from the original thread.

Right now it uses a 100ms timer to determine when the request is actaully complete,
but I think this can be removed in the long run with a better mechanism.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759414 13f79535-47bb-0310-9956-ffa450edef68
2009-03-28 01:02:32 +00:00
Paul Querna
b145fc9e77 Add support for Preserving the client provided Host header.
* modules/proxy/mod_serf.c
    (serf_config_t): Add preservehost member.
    (setup_request): If preservehost is set, use the client provided Host header,
        otherwise use the one from the configuration.
    (is_true): New helper function for decoding true/false strings.
    (add_pass): Change to an argv configuration function, check for not enough
        args, and parse everything after the URI into key/value pairs.
    (create_dir_config): Default to setting preservehost to on.
    (serf_cmds): Change add_pass to a take argv directive.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759395 13f79535-47bb-0310-9956-ffa450edef68
2009-03-27 23:56:53 +00:00
Paul Querna
a9d397bef0 * modules/proxy/mod_serf.c
(hb_list_servers): Allows relative paths for the heartbeat file.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759389 13f79535-47bb-0310-9956-ffa450edef68
2009-03-27 23:17:06 +00:00
Paul Querna
3d379b20f5 Work in Progress.
Add Clustered proxying support to mod_serf, by using the heartbeats system.

No preconfiguration of cluster members is needed.

Just a config like this:
    SerfCluster sweet heartbeat file=/var/cache/apache/hb.dat
    SerfCluster sour heartbeat file=/var/cache/apache/cluster2.dat
    <Location "/">
      SerfPass cluster://sweet
    </Location>
    <Location "/different_cluster">
      SerfPass cluster://sour
    </Location>

The location of all possible destination servers is provided by a new 
providers interface, that includes configuration checking of the arguments to 
the SerfCluster command, solving one of the worst problems with the mod_proxy 
load balancer subsystem.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@759386 13f79535-47bb-0310-9956-ffa450edef68
2009-03-27 23:10:21 +00:00
Justin Erenkrantz
3e236f8b24 Umm, oops. r595022 shouldn't have ended up in trunk.
Bad subversion - it crashed when commiting on a switched wc and committed to
the wrong path!

/me hits self on behalf of all SVN devs


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@595024 13f79535-47bb-0310-9956-ffa450edef68
2007-11-14 19:52:22 +00:00
Justin Erenkrantz
d0404fe34f Amsterdam sandbox: add serf input/output filters that replace the core filters.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@595022 13f79535-47bb-0310-9956-ffa450edef68
2007-11-14 19:49:05 +00:00
Paul Querna
95ac1252e4 Add mod_serf, a reverse proxy module, which uses serf[1] as its http client library.
To enable, pass something like this to configure:
   --enable-serf --with-serf=/usr/local/serf/0.1.2
To try it out, put something like this in your httpd.conf:
<Location />
    SerfPass http://httpd.apache.org/
</Location>

LocationMatch and all related directives can also be used, magical eh?

[1] - http://code.google.com/p/serf/


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@594425 13f79535-47bb-0310-9956-ffa450edef68
2007-11-13 04:20:50 +00:00