Seema Alevoor wrote: > > Some thoughts on the new layout : > The initial proposal mentioned about a new directory, "conf.d" under > /etc/apache2 to host various Apache 2.2.4 > server configuration files. I don't think we need this new directory. We > already have "extra" directory under > /etc/apache2 which can serve this purpose. Currently, httpd.conf-example file > explicitly includes > (but the lines are commented) all the .conf files under /etc/apache2/extra > dir. > Instead, we can include the following line (commented by default) in > httpd.conf-example file. > Include /etc/apache2/extra/*.conf > I was hoping we will use 'conf.d' as a wrapper directory for all task specific configurations underneath and totally not need a directory like 'extra'. I thought, the name 'extra' sounds yucky > Similarly, can't we use the existing file, "/usr/apache2/bin/envvars" > (already sourced from apachectl), for setting the variable > "HTTPD" which determines the server mpm that would be used at startup ? > > I was hoping , envvars will also source its variables from /etc/default/httpd. Customer should have a easy way to switch between multiple MPM. IMO, /usr/apache2/bin/envvars is not a very intuitive place that one would look for to switch between multiple MPM. Besides, /etc/default holds all system wide default configurations.
Any better suggestions are always most welcome thanks sriram > > > Seema Alevoor wrote: > >>> Hi, >>> >>> I tried prototyping this layout structure with multiple MPMs using sfw >>> build environment. >>> I modified sfw build scripts to build and install prefork, worker mpm >>> binaries under usr/apache2/bin directory. >>> First I built apr and apr-util libraries with --enable-threads option and >>> then built prefork followed by worker. >>> I have used different configure options for prefork and worker. >>> All the required modules are created during prefork mpm build (existing >>> way). For building worker mpm, >>> I did not include the extra module options used for prefork since only the >>> 'httpd' binary from the worker build is copied to >>> usr/apache2/bin directory as httpd.worker. There is no need to build these >>> modules again. >>> All the modules that are generated during prefork build get installed under >>> usr/apache2/modules >>> (I have changed the directory name from "libexec" to "modules" which is >>> more intuitive). >>> >>> I tested these 2 co-located mpms along with the prefork mpm (part of SXDE >>> installation) located under /usr/apache2. >>> First, I used torture script. Then I ran Apache Test suite. I have listed >>> the result of these runs. >>> Initially, some of the tests of Apache Test suite which passed for prefork >>> mpm failed (tests were hanging) for worker mpm. >>> It was failing in cgi module. By default, prefork mpm uses mod_cgi and >>> worker mpm uses mod_cgid. My build didn't have mod_cgid. >>> When I built and used cgid module, these tests passed for worker mpm and >>> got consistent results for co-located mpms and existing prefork mpm. >>> >>> I have listed below, the configuration options used for building prefork >>> and mpm. >>> >>> prefork: >>> ./configure --prefix=/usr/apache2 \ >>> --enable-layout=Solaris-Apache2 \ >>> --enable-mods-shared=all \ >>> --enable-so \ >>> --enable-suexec \ >>> --enable-proxy \ >>> --enable-proxy-connect \ >>> --enable-proxy-ftp \ >>> --enable-proxy-http \ >>> --enable-proxy-ajp \ >>> --enable-proxy-balancer \ >>> --enable-file-cache \ >>> --enable-disk-cache \ >>> --enable-cache \ >>> --enable-mem-cache \ >>> --enable-deflate \ >>> --enable-cgi \ >>> --enable-cgid \ >>> --enable-ssl \ >>> --with-ssl=/usr/sfw \ >>> >>> --with-apr=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr \ >>> >>> --with-apr-util=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr-util \ >>> --with-mpm=prefork) >>> >>> worker: >>> ./configure --prefix=/usr/apache2 \ >>> --enable-layout=Solaris-Apache2 \ >>> --enable-mods-shared=all \ >>> --enable-so \ >>> --with-ssl=/usr/sfw \ >>> >>> --with-apr=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr \ >>> >>> --with-apr-util=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr-util \ >>> --with-mpm=worker) >>> >>> >>> Test Resutls: >>> >>> A) torture.pl script runs: >>> >>> 1) Running torture on co-located worker mpm >>> >>> output: >>> ------- >>> > ./torture.pl -c 3000 http://localhost:3000/index.html >>> ** torture.pl version 1.05 starting at Wed Aug 8 01:43:47 2007 >>> Transactions: 3000 >>> Elapsed time: 43.836 sec >>> Bytes Transferred: 72000 bytes >>> Response Time: 15.00 sec >>> Transaction Rate: 68.44 trans/sec >>> Throughput: 1642.50 bytes/sec >>> Concurrency: 1026.7 >>> Status Code 200: 3000 >>> ** torture.pl version 1.05 ending at Wed Aug 8 01:45:03 2007 >>> >>> >>> 2) Running torture on co-located prefork mpm >>> >>> output: >>> ------- >>> > ./torture.pl -c 1000 http://localhost:3000/index.html >>> ** torture.pl version 1.05 starting at Wed Aug 8 02:04:06 2007 >>> Transactions: 1000 >>> Elapsed time: 171.426 sec >>> Bytes Transferred: 24000 bytes >>> Response Time: 65.32 sec >>> Transaction Rate: 5.83 trans/sec >>> Throughput: 140.00 bytes/sec >>> Concurrency: 381.1 >>> Status Code 200: 1000 >>> ** torture.pl version 1.05 ending at Wed Aug 8 02:07:07 2007 >>> >>> > ./torture.pl -c 2000 http://localhost:3000/index.html >>> ** torture.pl version 1.05 starting at Wed Aug 8 01:55:07 2007 >>> Transactions: 2000 >>> Elapsed time: 221.519 sec >>> Bytes Transferred: 38784 bytes >>> Response Time: 108.84 sec >>> Transaction Rate: 9.03 trans/sec >>> Throughput: 175.08 bytes/sec >>> Concurrency: 982.7 >>> Status Code 200: 1616 >>> Status Code 503: 384 >>> ** torture.pl version 1.05 ending at Wed Aug 8 01:59:10 2007 >>> >>> >>> >>> 2) Running torture on original (the one that gets installed as part of OS >>> installation under /usr/apache2) prefork mpm >>> >>> output: >>> ------- >>> > ./torture.pl -c 1000 http://localhost:3000/index.html >>> ** torture.pl version 1.05 starting at Thu Aug 2 03:25:22 2007 >>> Transactions: 1000 >>> Elapsed time: 168.460 sec >>> Bytes Transferred: 44000 bytes >>> Response Time: 57.37 sec >>> Transaction Rate: 5.94 trans/sec >>> Throughput: 261.19 bytes/sec >>> Concurrency: 340.6 >>> Status Code 200: 1000 >>> ** torture.pl version 1.05 ending at Thu Aug 2 03:28:21 2007 >>> >>> ./torture.pl -c 2000 http://localhost:3000/index.html >>> ** torture.pl version 1.05 starting at Thu Aug 2 03:20:29 2007 >>> Transactions: 2000 >>> Elapsed time: 223.134 sec >>> Bytes Transferred: 69916 bytes >>> Response Time: 110.50 sec >>> Transaction Rate: 8.96 trans/sec >>> Throughput: 313.34 bytes/sec >>> Concurrency: 990.4 >>> Status Code 200: 1589 >>> Status Code 503: 411 >>> ** torture.pl version 1.05 ending at Thu Aug 2 03:24:33 2007 >>> >>> >>> >>> B) Apache Test suite runs: on co-located prefork, worker and original (the >>> one that gets installed as part of OS installation under /usr/apache2) >>> prefork mpms : >>> >>> Failed Test Stat Wstat Total Fail Failed List of Failed >>> ------------------------------------------------------------------------------- >>> t/apache/errordoc.t 14 6 42.86% 2 4 6 10 12 14 >>> t/modules/cache.t 3 3 100.00% 1-3 >>> t/modules/include.t 86 6 6.98% 4-6 47-48 53 >>> t/modules/proxy.t 13 12 92.31% 1-8 10-13 >>> t/modules/proxy_balancer.t 1 1 100.00% 1 >>> t/modules/vhost_alias.t 8 8 100.00% 1-8 >>> t/protocol/nntp-like.t 255 65280 5 8 160.00% 2-5 >>> t/security/CVE-2006-5752.t 2 1 50.00% 2 >>> 11 tests and 14 subtests skipped. >>> Failed 8/66 test scripts, 87.88% okay. 41/2421 subtests failed, 98.31% okay. >>> >>> >>> >>> >>> The modified part of the layout looks like this: >>> >>> proto/root_i386/usr/apache2/bin/httpd.worker >>> proto/root_i386/usr/apache2/bin/httpd >>> proto/root_i386/usr/apache2/bin/apr-1-config >>> proto/root_i386/usr/apache2/bin/apu-1-config >>> proto/root_i386/usr/apache2/bin/htpasswd >>> proto/root_i386/usr/apache2/bin/htdigest >>> proto/root_i386/usr/apache2/bin/rotatelogs >>> proto/root_i386/usr/apache2/bin/logresolve >>> proto/root_i386/usr/apache2/bin/ab >>> proto/root_i386/usr/apache2/bin/checkgid >>> proto/root_i386/usr/apache2/bin/htdbm >>> proto/root_i386/usr/apache2/bin/htcacheclean >>> proto/root_i386/usr/apache2/bin/httxt2dbm >>> proto/root_i386/usr/apache2/bin/apxs >>> proto/root_i386/usr/apache2/bin/apachectl >>> proto/root_i386/usr/apache2/bin/dbmmanage >>> proto/root_i386/usr/apache2/bin/envvars-std >>> proto/root_i386/usr/apache2/bin/envvars >>> proto/root_i386/usr/apache2/bin/suexec.disabled >>> proto/root_i386/usr/apache2/modules >>> proto/root_i386/usr/apache2/modules/mod_auth_gss.so >>> proto/root_i386/usr/apache2/modules/mod_authn_file.so >>> proto/root_i386/usr/apache2/modules/mod_authn_dbm.so >>> proto/root_i386/usr/apache2/modules/mod_authn_anon.so >>> proto/root_i386/usr/apache2/modules/mod_authn_dbd.so >>> proto/root_i386/usr/apache2/modules/mod_authn_default.so >>> proto/root_i386/usr/apache2/modules/mod_authz_host.so >>> proto/root_i386/usr/apache2/modules/mod_authz_groupfile.so >>> proto/root_i386/usr/apache2/modules/mod_authz_user.so >>> proto/root_i386/usr/apache2/modules/mod_authz_dbm.so >>> proto/root_i386/usr/apache2/modules/mod_authz_owner.so >>> proto/root_i386/usr/apache2/modules/mod_authz_default.so >>> proto/root_i386/usr/apache2/modules/mod_auth_basic.so >>> proto/root_i386/usr/apache2/modules/mod_auth_digest.so >>> proto/root_i386/usr/apache2/modules/mod_file_cache.so >>> proto/root_i386/usr/apache2/modules/mod_cache.so >>> proto/root_i386/usr/apache2/modules/mod_disk_cache.so >>> proto/root_i386/usr/apache2/modules/mod_mem_cache.so >>> proto/root_i386/usr/apache2/modules/mod_dbd.so >>> proto/root_i386/usr/apache2/modules/mod_dumpio.so >>> proto/root_i386/usr/apache2/modules/mod_ext_filter.so >>> proto/root_i386/usr/apache2/modules/mod_include.so >>> proto/root_i386/usr/apache2/modules/mod_filter.so >>> proto/root_i386/usr/apache2/modules/mod_deflate.so >>> proto/root_i386/usr/apache2/modules/mod_log_config.so >>> proto/root_i386/usr/apache2/modules/mod_log_forensic.so >>> >>> >>> >>> Please share your thoughts on this new layout & build options. >>> >>> >>> Thanks and Regards, >>> Seema. >>> >>> >>> Sriram Natarajan wrote: >>> >>>> Hi >>>> I just posted my thoughts on as to how Apache 2.2.4 file layout could >>>> look so as to support multiple MPM support as part of our SAMP stack >>>> effort within SXDE. I would very much appreciate, if you could take a >>>> moment to review this proposal and let us know your concerns / suggestions. >>>> >>>> Here is the url >>>> http://www.opensolaris.org/jive/thread.jspa?threadID=36272 >>>> >>>> >>>> Thanks in advance >>>> sriram >>>> _______________________________________________ >>>> webstack-discuss mailing list >>>> webstack-discuss at opensolaris.org >>>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss >>>> >>> _______________________________________________ >>> webstack-discuss mailing list >>> webstack-discuss at opensolaris.org >>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss >>> >> _______________________________________________ >> webstack-discuss mailing list >> webstack-discuss at opensolaris.org >> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss >> > _______________________________________________ > webstack-discuss mailing list > webstack-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/webstack-discuss >
