[Web-SIG] WSGI deployment: an experiment
Rene Dudfield
renesd at gmail.com
Fri Jul 29 03:14:56 CEST 2005
Hey,
There is a lot of terminology here that would not be understood by
some random sys admin coming to have a look at the config file.
Below I pasted it here without the comments. Sometimes it is good to
have a look at things without comments to see how readable they are.
Is this config file reusable? Can I place it in a path of other apps,
and then it could live in say /app2 instead of at / Can it not care
about the server it is running on?
[server:main]
use: Paste wsgiutils
port: 8080
host: 127.0.0.1
[application: main]
use: Paste pipeline
pipeline: printdebug urlmap
[filter: printdebug]
use: Paste printdebug
[application: urlmap]
use: Paste urlmap
/home = fb1
/other = fb2
[application: fb1]
use: FileBrowser app
browse_path = /home/ianb
[application: fb2]
use: FileBrowser app
browse_path = /home/rflosi
On 7/29/05, Ian Bicking <ianb at colorstudy.com> wrote:
> I've created a branch in Paste with a rough experiment in WSGI
> deployment, declarative but (I think) more general than what's been
> discussed. The branch is at:
>
> http://svn.pythonpaste.org/Paste/branches/wsgi-deployment-experiment/
>
> All the specific modules for this stuff are in wsgi_*; wsgi_deploy.py
> being the main one.
>
> And an application that is runnable with it is at:
>
> http://svn.pythonpaste.org/Paste/apps/FileBrowser/trunk/
>
> It's experimental. It's far too bound to ConfigParser. Maybe it's too
> closely bound to .ini files in general. It doesn't handle multiple
> files or file references well at all. Actually, not just not well, but
> just not at all. But I think it's fairly simple and usable as a proof
> of concept.
>
>
> And here's the deployment file, with some comments added:
>
> # This is a special section for the server. Probably it should
> # just be named "server", but eh. This is for when you use
> # paste.wsgi_deploy.make_deployment -- you can also create an
> # application from this file without serving it; it just happens
> # to be that you can put both application sections and a server
> # section in the same file without clashing...
> [server:main]
> # use: does pkg_resources.load_entry_point(spec, 'type...', name)
> # you can also use "factory" to avoid eggishness.
> # servers have a type of wsgi.server_factory00
> # applications have a type of wsgi.app_factory00
> # filters (aka middleware) have a type of wsgi.filter_factory00
> use: Paste wsgiutils
> port: 8080
> host: 127.0.0.1
>
> # "main" is the application that is loaded when this file is
> # loaded.
> [application: main]
> # This is an application factory. The application factory is passed
> # app_factory(this_configparser_object, this_section), and returns
> # the application. In this case the pipeline factory will use other
> # sections in the config file to compose middleware.
> use: Paste pipeline
> # These each refer to sections; the last item is an application, the
> # others are filters.
> pipeline: printdebug urlmap
>
> # Here's that filter.
> [filter: printdebug]
> use: Paste printdebug
>
> # This isn't a filter, even though it dispatches, because it doesn't
> # dispatch to a single application.
> [application: urlmap]
> use: Paste urlmap
> # Path like things are used to map to other named applications.
> # In this case nothing is mapped to /, so you'll get a 404 unless
> # you go to one of these paths. But something could be mapped to /,
> # of course.
> /home = fb1
> /other = fb2
>
> # This is the first real application.
> [application: fb1]
> use: FileBrowser app
>
> # This is a configuration parameter that is passed to the application.
> # The actual passing happens in wsgi_deploy.make_paste_app, which
> # is invoked by the 'app' entry point. It uses the paste convention
> # of a flat configuration.
> browse_path = /home/ianb
>
> # And the same app, but with different configuration. Of course
> # the pipeline app could also be used, or whatever. Ideally it
> # should be easier to point to other files, not just other sections.
> [application: fb2]
> use: FileBrowser app
>
> browse_path = /home/rflosi
>
>
>
> --
> Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
> _______________________________________________
> Web-SIG mailing list
> Web-SIG at python.org
> Web SIG: http://www.python.org/sigs/web-sig
> Unsubscribe: http://mail.python.org/mailman/options/web-sig/renesd%40gmail.com
>
More information about the Web-SIG
mailing list