On Tuesday 08 February 2005 06:20, Bernd Eidenschink wrote: > * Having a 'real' config file with _all_ default values. > Maybe the current grep-thru-code way could somehow be simplified. >
Check my new, 'complete' config file: <http://rmadilo.com/m2/> starting at jnm.tcl Config file is broken into different files, based on branching/repeated sections. In the example case, I have three virtual servers: jnm, configtest and cf2, with jnm being the name of the 'main' or default server, although there isn't supposed to be a default. There are three nssock modules loaded and the three servers are spread among these, I have nsdb support shown, and threadpools, nscgi and a tcl module. The main config file is jnm.tcl here's the structure: /web/m2/jnm.tcl <-- main config /nsdb-jnm.tcl <-- main nsdb for the jnm server /nsdb-jnm-pg.tcl <-- postgres db pool config /nsdb-jnm-pool[1-3].tcl <-- symlinks to nsdb-jnm-pg.tcl /servers/jnm/config/ <-- config directory for jnm /servers/jnm/config/server.tcl <-- main server config for jnm /servers/jnm/config/nslog.tcl <-- access log module configuration /servers/jnm/config/nscgi.tcl <-- module named nscgi config /servers/jnm/config/threadpool-fast.tcl <-- threadpool named fast /servers/jnm/config/module-name.tcl <-- for other modules The scripts included try to be smart about loading virtual servers. First the config files for the server are read. If there are simple syntax errors, these are caught and the virtual server is removed from the list of servers. Next successful servers are added to ns/servers and mapped to the nssocks. If an nssock ends up with no virtual servers mapped, or the default virtual server for that sock had an error, the nssock is not added, otherwise the whole jnm server would fail to startup. Successful nssocks are read into the configuation file. It is easy to extend the functionality of this setup. Module maintainers can simply add a single file, containing all the config parameters (if one is needed). You just add the module name to the server.tcl file for the virtual server. NOTE: there is currently a bug in the virtual server loading. The nssock section must contain a defaultserver parameter, or the nssock, and the whole server fail to start (This is by design, and is correct). However, only the defaultserver of the last registered nssock is used. That is, one virtual server serves as the default virtual server for every nssock, even if there were never any maps to that virtual server in the nssockX/servers section. NOTE2: users of virtual servers running 4.0.8 or 4.0.9 should upgrade to 4.0.10, due to a DOS bug. If you need info, email me directly. > * Altering pageroot depending on HTTP host header Should require one new api call, oh, and why not allow threadpools to operate on this info as well? As a fast workaround, chechout ns_rewriteurl, you can map within the server pageroot. Although this sounds not that good, since the actual pageroot might look like: /pages/ /pages/vserver1/ /pages/vserver2/ etc. You can 'disable' the main, or non-matching host header by having a default mapping, i.e. you could never reach /pages/. > plus > dis-allowing any adp/tcl funcionality for these pageroots > on a file level (no interpretation) as an option > > * Server-wide shared variables > Maybe we can get AOL to release the PROXY support which has a 'specialized tclsh', probably requires all this and more. Although Rob Mayoff's threadpool module seems great, I believe the threads are clones of the server they run in, thus they could be fat. If virtual servers could communicate to each other (on a publish/subscribe basis), just about any smallish server could be used, but I suspect the PROXY module used by AOL has even more useful features??? > * Up-to-date patches for PHP (...) integration > > * Some kind of watchdog functionality > Actually only a built in module would work very well, and fast. Every solution I've seen is a true hack, which is why it needs to be in core. tom jackson -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.