You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Michael Theroux <mt...@sonicsoftware.com> on 2003/01/30 00:48:05 UTC
[users@httpd] Keepalive utilizing HTTP 1.0 via mod_proxy
Hello,
I am attempting to write a HTTP 1.0 application that utilizes Apache 1.3.27
as a reverse proxy to an in-house HTTP server. The connections will be
utilizing https.
On the server, I've noticed that "Connection: close" is always set within
every proxied HTTP header. In the original HTTP request, Connection:
keep-alive is specified. This is causing a lot of additional connection
overhead.
Similar behavior seems to occur with 1.1 clients.
Browsing through the 1.3 source, I've noticed the following in
proxy_http.c:
int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
const char *proxyhost, int proxyport)
{
.
.
.
/* we don't yet support keepalives - but we will soon, I promise! */
ap_table_set(req_hdrs, "Connection", "close");
.
.
.
}
Should I take this to mean that mod_proxy under Apache 1.3.27 does not
support persistent connections?
I moved onto Apache 2.0.44. Again utilizing a 1.0 client. I appear to be
hitting another set of problems.
"Connection: close" is no longer inserted into every proxied request.
However, the proxied reply does have "connection: close" set. Once the
reply is received, Apache closes the socket to the 1.0 client.
1.1 Clients utilizing Apache 2.0.44 as a reverse proxy seems to function
correctly.
So, in summary, I have two questions:
1) Does Apache 1.3.24 mod_proxy reverse proxy support persistent
connections? If so, what may I be doing incorrectly? (Keep-Alive is on,
httpd.conf is at the end of this message)
2) What is required to allow a HTTP 1.0 client to establish a persistent
connection utilizing Apache 2.0.44 as the reverse proxy?
http.conf for 1.3.24 below:
ServerType standalone
ServerRoot "D:/apache-met"
PidFile logs/httpd.pid
ScoreBoardFile logs/apache_runtime_status
Timeout 300
KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MaxRequestsPerChild 0
ThreadsPerChild 50
LoadModule proxy_module modules/mod_proxy.so
LoadModule ssl_module modules/mod_ssl.so
ClearModuleList
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_isapi.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_proxy.c
AddModule mod_ssl.c
AddModule mod_so.c
AddModule mod_setenvif.c
listen 80
listen 443
ServerName foo.bar.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
UseCanonicalName On
<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access.log common
ServerSignature On
<IfModule mod_proxy.c>
ProxyRequests On
</IfModule>
SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none
SSLLog logs/SSL.log
SSLLogLevel info
SSLProtocol all
SSLLog logs/ssl_engine_log
SSLPassPhraseDialog builtin
<VirtualHost foo.bar.com:80>
SSLEngine off
SSLVerifyClient none
SSLCACertificatePath ssl/
SSLCertificateFile ssl/test_Server_0.der
SSLCertificateKeyFile ssl/clientkey.pem
ProxyPass /SC/ http://nbmtheroux2:47011/SC/
ProxyPassReverse /SC/ http://nbmtheroux2:47011/SC/
NoCache *
</VirtualHost>
<VirtualHost foo.bar.com:443>
SSLEngine on
SSLVerifyClient none
SSLCACertificatePath ssl/
SSLCertificateFile ssl/test_Server_0.der
SSLCertificateKeyFile ssl/clientkey.pem
ProxyPass /SC/ https://nbmtheroux2:47012/SC/
ProxyPassReverse /SC/ https://nbmtheroux2:47012/SC/
NoCache *
</VirtualHost>
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org