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
>   

Reply via email to