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

284 Commits

Author SHA1 Message Date
Jim Jagielski
daa5a5c57c OK... a good commit point (we don't quite compile yet though...)
Pull out the worker scoreboard cruft and start moving most
worker stuff to shm. Use slotmem for workers and provide
space for growth.

Redo logic:

  ap_proxy_define_*
  ap_proxy_create_*
  ap_proxy_initialize_*

Right now just for workers, but lay framework for balancers
as well. The idea is to break out the functional parts
to make it easy for dynamics. Defining is simply describing
the worker, and tucking that info away. When we create, we
go ahead and create the shared memory, etc... Initialize
is simply to allow child process to access the shm...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1058622 13f79535-47bb-0310-9956-ffa450edef68
2011-01-13 15:58:50 +00:00
Jim Jagielski
5febbb22aa Use branch now
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1058621 13f79535-47bb-0310-9956-ffa450edef68
2011-01-13 15:58:45 +00:00
Graham Leggett
40a2f60a99 Update the comment to indicate what the backend request is really used for.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1055367 13f79535-47bb-0310-9956-ffa450edef68
2011-01-05 09:18:18 +00:00
Ruediger Pluem
cbe247d915 * The concept of the cleaned flag is flawed: Once we returned the connection
to the pool we cannot longer rely on it as another thread could have leased
  the connection in the meantime and might have modified it.
  BUT: We only use this flag once we returned the connection to the pool.
  So signal that we returned the connection to the pool by something that is
  local to the thread, in this case set backend to NULL if we already have
  returende the connection.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1052314 13f79535-47bb-0310-9956-ffa450edef68
2010-12-23 16:43:43 +00:00
Graham Leggett
807be6db70 Revert r1035504, this was the wrong way to do it.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1035576 13f79535-47bb-0310-9956-ffa450edef68
2010-11-16 10:27:26 +00:00
Graham Leggett
38437740bb Fix pool lifetime issues when the proxy backend connection is terminated
early by forcing a setaside on transient buckets placed in the brigade
by mod_ssl. This has the effect of extending the lifetime of buckets until
the end of the request. This is a variation on the original fix for this
problem, which added transient buckets to be setaside later in the process.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1035504 13f79535-47bb-0310-9956-ffa450edef68
2010-11-16 00:23:37 +00:00
Nick Kew
3bad5b1780 Fix mod_proxy to support setting source address.
PR 29404
Seems lots of users want this, and a couple of them have recenly asked nicely


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1034916 13f79535-47bb-0310-9956-ffa450edef68
2010-11-14 00:01:43 +00:00
Jeff Trawick
c0d5e1671d improve wording of some function descriptions
add explicit "FIXME" to an ancient issue

remove implicit fixme wording related to mutex use


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1032286 13f79535-47bb-0310-9956-ffa450edef68
2010-11-07 14:35:21 +00:00
Jeff Trawick
c7d76f1aac axe outdated comment about FIXMEs/CHECKMEs
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1032271 13f79535-47bb-0310-9956-ffa450edef68
2010-11-07 13:13:26 +00:00
Daniel Earl Poirier
6b803976f2 Fix a number of typos and misspellings. Reported by Ville Skytta.
PR48496.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1029134 13f79535-47bb-0310-9956-ffa450edef68
2010-10-30 17:56:13 +00:00
Graham Leggett
87c10fe5f1 Optimise more of the flags within proxy structures.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1026668 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 19:34:16 +00:00
Graham Leggett
9d58cd6990 mod_proxy: Release the backend connection as soon as EOS is detected,
so the backend isn't forced to wait for the client to eventually
acknowledge the data.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1026665 13f79535-47bb-0310-9956-ffa450edef68
2010-10-23 19:26:44 +00:00
Graham Leggett
13fec746f9 mod_proxy: Optimise ProxyPass within a Location so that it is stored
per-directory, and chosen during the location walk. Make ProxyPass
work correctly from within a LocationMatch.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1026184 13f79535-47bb-0310-9956-ffa450edef68
2010-10-22 00:13:45 +00:00
Graham Leggett
a68e17cdb2 Optimise the set flags in the mod_proxy structures.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1025699 13f79535-47bb-0310-9956-ffa450edef68
2010-10-20 19:47:00 +00:00
Graham Leggett
84a346c5bb mod_proxy: Move the ProxyErrorOverride directive to have per directory scope.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1025666 13f79535-47bb-0310-9956-ffa450edef68
2010-10-20 18:33:55 +00:00
Jim Jagielski
1d50e028df Fold in possible use of FNV if desired
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@998949 13f79535-47bb-0310-9956-ffa450edef68
2010-09-20 14:51:19 +00:00
Jim Jagielski
c55a15fc2f Fold in some stuff to allow for matching of workers
to their actual scoreboard slots, independent of slot
ID.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@984188 13f79535-47bb-0310-9956-ffa450edef68
2010-08-10 19:46:58 +00:00
Jim Jagielski
ed67c11e05 Allow for modules to keep track of worker slot
numbers themselves if they want, by allowing for
worker create/alloc functions to take a slot number id.
Done via _wid() variants of 3 proxy funcs.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@964089 13f79535-47bb-0310-9956-ffa450edef68
2010-07-14 16:03:19 +00:00
Stefan Fritsch
ed451e94d1 re-order many struct members for better alignment on 64bit
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@959464 13f79535-47bb-0310-9956-ffa450edef68
2010-06-30 22:34:05 +00:00
Stefan Fritsch
877b46df6b log issues with CONNECT at request scope instead of server scope
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@951189 13f79535-47bb-0310-9956-ffa450edef68
2010-06-03 22:47:46 +00:00
Jean-Frederic Clere
4c4b534813 Add updatelbstatus to allow to have all the LB logic in the balancers.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@936828 13f79535-47bb-0310-9956-ffa450edef68
2010-04-22 13:13:40 +00:00
Nick Kew
9c1c3f56d4 Proxy balancer: support setting error status according to
HTTP response code from a backend.
PR 48939 [Daniel Ruggeri <DRuggeri primary.net>]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@930125 13f79535-47bb-0310-9956-ffa450edef68
2010-04-01 22:48:38 +00:00
Rainer Jung
8eb4de81e9 Support remote https proxies by using HTTP CONNECT.
PR: 19188
Submitted by: Philippe Dutrueux <lilas evidian.com>
Reviewed by: rjung


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@909323 13f79535-47bb-0310-9956-ffa450edef68
2010-02-12 09:58:48 +00:00
Rainer Jung
6786f61f3e Fix typo in comment.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@909290 13f79535-47bb-0310-9956-ffa450edef68
2010-02-12 08:27:04 +00:00
Takashi Sato
92cf9b940e Move ProxyFtpDirCharset from mod_proxy to mod_proxy_ftp.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@894526 13f79535-47bb-0310-9956-ffa450edef68
2009-12-30 00:51:46 +00:00
Takashi Sato
255f44600c Move AllowCONNECT from mod_proxy to mod_proxy_connect.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@894425 13f79535-47bb-0310-9956-ffa450edef68
2009-12-29 15:39:54 +00:00
Daniel Earl Poirier
04fd4abf90 Fix a lot of doxygen warnings. Thanks to Brad Hards for the patch.
I added a few more fixes, and there are still more that might
need a doxygen expert.

PR: 48061
Submitted by: Brad Hards
Reviewed by: poirier


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@830527 13f79535-47bb-0310-9956-ffa450edef68
2009-10-28 13:25:49 +00:00
Stefan Fritsch
3fa2c0e208 Allow ProxyPreserveHost to work in <Proxy> sections
PR: 34901


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@824072 13f79535-47bb-0310-9956-ffa450edef68
2009-10-11 13:38:51 +00:00
Jim Jagielski
51097f8040 kinda old
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@816203 13f79535-47bb-0310-9956-ffa450edef68
2009-09-17 14:09:37 +00:00
Jean-Frederic Clere
48ae3d9efa Allow the load balancing method to "create" workers.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@774400 13f79535-47bb-0310-9956-ffa450edef68
2009-05-13 15:27:05 +00:00
Jean-Frederic Clere
ab9ed6d974 server_rec *r... Oops should be server_rec *s.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@774239 13f79535-47bb-0310-9956-ffa450edef68
2009-05-13 06:55:57 +00:00
Jean-Frederic Clere
a970341df7 Arrange the proxy_balancer_method:
- Put context back after the finder().
- Use  server_rec as second parameter for reset() and age().
- Add the call for reset().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@773929 13f79535-47bb-0310-9956-ffa450edef68
2009-05-12 15:10:56 +00:00
Jim Jagielski
5e9c4bfe47 fix docco
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@771981 13f79535-47bb-0310-9956-ffa450edef68
2009-05-05 21:49:01 +00:00
Jim Jagielski
9399483e16 optimize.... rp! :)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@771976 13f79535-47bb-0310-9956-ffa450edef68
2009-05-05 19:29:04 +00:00
Jean-Frederic Clere
a29e9ec1d5 Change the order of mod_proxy and mod_proxy_balancer child_init().
Change the balancer workers area to the address of workers instead copying the workers.
Arrange lbmethod accordingly.
Move the creation of conf->forward worker to mod_proxy child_init().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@771940 13f79535-47bb-0310-9956-ffa450edef68
2009-05-05 17:15:48 +00:00
Jim Jagielski
7e145e7312 Fold in initial template for methods to be able to
reset (initialize) and "age" their data, useful when
adding new workers, or when workers come back into
the fold....

Logic and code to come in a bit :)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@769020 13f79535-47bb-0310-9956-ffa450edef68
2009-04-27 15:02:40 +00:00
Paul Querna
1e06b62d69 Add configuration of the Flush provider for mod_proxy_fdpass.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@725946 13f79535-47bb-0310-9956-ffa450edef68
2008-12-12 08:46:47 +00:00
Ruediger Pluem
4a3c945b14 * Rip out the old flushing approach for solving lifetime issues between the
backend connection bucket allocator and front end connection bucket allocator.
  Instead copy the buckets from the backend over to ones that have been created
  using the front end bucket allocator. For metabucket this is done by recreating
  them, for data buckets this is done by reading them and putting the read data
  in a transient bucket.

PR: 45792


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@712375 13f79535-47bb-0310-9956-ffa450edef68
2008-11-08 11:09:38 +00:00
Jim Jagielski
45c5291a7f Allow determination of whether to use ';' as
a sticky session path delim/sep (ala mod_jk) to
be runtime (and balancer-wise) configurable.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@687754 13f79535-47bb-0310-9956-ffa450edef68
2008-08-21 13:33:32 +00:00
Ruediger Pluem
b4e20c8e55 * Add the possibility to set a separate connection timeout for backend
workers.

PR: 45445
Submitted by: rahul <rahul sun.com>
Reviewed by: rpluem


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@684341 13f79535-47bb-0310-9956-ffa450edef68
2008-08-09 20:52:46 +00:00
Nick Kew
caab5e8b8a Switch ftp_directory_charset and interpolate_env in proxy_dir_conf,
with a major MMN bump.  As suggested by rpluem in r661069 to enable
backport *without* a major bump (ABI breakage) in 2.2.x.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@661079 13f79535-47bb-0310-9956-ffa450edef68
2008-05-28 20:56:02 +00:00
Paul Querna
a324a1d72f Remove all references to CORE_PRIVATE.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@645455 13f79535-47bb-0310-9956-ffa450edef68
2008-04-07 10:45:43 +00:00
Jim Jagielski
d1858ec213 Add in mod_jk's disablereuse analog for mod_proxy.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@627728 13f79535-47bb-0310-9956-ffa450edef68
2008-02-14 12:55:57 +00:00
William A. Rowe Jr
e5661d3734 Introduce the ProxyFtpDirCharset directive, allowing the administrator
to identify a default, or specific servers or paths which list their
contents in other-than ISO-8859-1 charset (e.g. utf-8).

Submitted by: Ruediger Pluem



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@607638 13f79535-47bb-0310-9956-ffa450edef68
2007-12-31 01:13:43 +00:00
Ruediger Pluem
d2a1cf5f8c * Fix a SEGFAULT by ensuring that buckets that may have been buffered in the
network filters get flushed to the network. This is needed since
  these buckets have been created with the bucket allocator of the
  backend connection. This allocator either gets destroyed if
  conn->close is set or the worker address is not reusable which
  causes the connection to the backend to be closed or it will be used
  again by another frontend connection that wants to recycle the
  backend connection.
  In this case we could run into nasty race conditions (e.g. if the
  next user of the backend connection destroys the allocator before we
  sent the buckets to the network).

  Remark 1: Doing a setaside does not help here as the buckets remain
  created by the wrong allocator in this case.

  Remark 2: Yes, this creates a possible performance penalty in the case
  of pipelined requests as we may send only a small amount of data over
  the wire.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@604447 13f79535-47bb-0310-9956-ffa450edef68
2007-12-15 16:15:04 +00:00
Ruediger Pluem
0ae93ad6f9 * Use a separate subpool to manage the data for the socket and the connection
member of the proxy_conn_rec struct as we destroy this data more frequently
  than other data in the proxy_conn_rec struct like hostname and addr (at least
  in the case where we have keepalive connections that timed out and were
  closed by the backend).
  This fixes a memory leak with short lived and broken connections.

PR: 44026


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@603237 13f79535-47bb-0310-9956-ffa450edef68
2007-12-11 13:27:21 +00:00
Ruediger Pluem
bd49c01685 * Enable the proxy to keep connections persistent in the HTTPS case.
Basicly the persistence is created by keeping the conn_rec structure
  created for our backend connection (whether http or https) in the connection
  pool. This required to adjust scoreboard.c in a way that its functions can
  properly deal with a NULL scoreboard handle by ignoring the call or returning
  an error code.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@602542 13f79535-47bb-0310-9956-ffa450edef68
2007-12-08 20:10:29 +00:00
Nick Kew
bafefdd617 Update the patch for environment variable interpolation in
ProxyPass/Reverse/etc directives: r421686, r422178, r421686, r421725
That patch stalled on wrowe's veto.  This update introduces a new
"interpolate" keyword to all directives affected, so should meet
his concerns by adding explicit per-directive control (disabled
by default).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@589371 13f79535-47bb-0310-9956-ffa450edef68
2007-10-28 15:49:03 +00:00
Nick Kew
785b0379d6 mod_proxy: add "nocanon" keyword to ProxyPass, to suppress
URI-canonicalisation in a reverse proxy.
PR 41798


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@588791 13f79535-47bb-0310-9956-ffa450edef68
2007-10-26 23:07:22 +00:00
Jim Jagielski
e883a58cf6 Semi-revert 583466; just remove the ap_proxy_isvalidenc()
function until we canonically set the "allowed" list.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@583802 13f79535-47bb-0310-9956-ffa450edef68
2007-10-11 12:37:09 +00:00