[uWSGI] status update for 0.9.6

Paul van der Linden mail at paultjuh.org
Tue Jul 20 18:10:22 CEST 2010


Looks very promising!

On 20-7-2010 16:36, Roberto De Ioris wrote:
> Hi all, the 0.9.6 development is going on fast, and amazing new features has been added.
>
> This is the current status, i think we will be able to release a first RC during the first week of August.
>
> - Embedded HTTP server
>
> This is one of the most requested feature.
>
> Simply run uwsgi passing the --http option followed by the address to bind on:
>
> ./uwsgi --http :3333 -w simple_app
>
> Now on port 3333 you will have a multithreaded webserver that forward request to uWSGI workers.
> If you do not specify the -s/--socket option uWSGI will bind the workers to a random UNIX socket
>
> This feature will speed-up testing and development of the uWSGI project, but even of your WSGI apps
> development as you can use only uWSGI to run apps on your local machine.
>
> The http server is on early stage of development, and is not secure as it does not check for overflow, but we will address this
> in the next days. (and in the mean time you can use it for development, as i do not think you want to buffer overflow yourself ;) )
>
> *** Warning ***
>
> the embedded http server is only meant for development and testing, do not use it in production environment.
> HTTP is slow , the uwsgi protocol is fast :)
>
>
> - Routing
>
> The uWSGI routing is a new feature for users that do not need a full framework for their apps but still need
> a routing system to (fast) map url to python callable.
>
> For now only routing via xmlconf is supported.
>
> The syntax is simple:
>
> <route method="GET|POST" pattern="^/ciccia/(\d+)/(\w+)$">view1</route>
>
> this will call the view1() callable on matched pattern and method.
>
> There are a lot of options, expect official docs soon
>
> The routing system requires the libpcre
>
> - Embedded plugin support
>
> http://projects.unbit.it/uwsgi/wiki/PSGI
>
> - VirtualHosting mode:
>
> http://projects.unbit.it/uwsgi/wiki/VirtualHosting
>
> - New commodity options
>
> uWSGI 0.9.6 will add tons of new options to make administrators happy
>
> --logdate (will add timestamp to every logline)
> --chdir X (chdir to X at startup)
> --env K=V (set environment variable)
> --mode (set deploy mode, see below)
>
> - Advanced (and funny) XML configurations
>
> The uWSGI configuration do not need to be the only one in the xml file.
>
> You could have an app-specific xml config file in which you can include the uwsgi configuration:
>
> myapp.xml
>
> <pippo>
>
>      <setting1>0</setting1>
>      <pluto/>
>     <topolino>1</topolino>
>
>     <uwsgi>
>       <module>djangoapp</module>
>       <master/>
>       <socket>:3033</socket>
>     </uwsgi>
>
> </pippo>
>
>
> You can even put multiple uwsgi configuration in the same file using the "id" feature
>
> megaconf.xml
>
> <wsgiapps>
>
>      <uwsgi id="one.unbit.it">
>          <module>app1</module>
>          <socket>:3031</socket>
>         <processes>5</processes>
>      </uwsgi>
>
>
>     <uwsgi id="two.unbit.it">
>          <module>app2</module>
>          <socket>:3032</socket>
>         <processes>5</processes>
>      </uwsgi>
>
>
>      <uwsgi id="three.unbit.it">
>          <module>app3</module>
>          <socket>:3033</socket>
>         <processes>4</processes>
>         <master/>
>      </uwsgi>
>
>      <uwsgi id="test">
>          <module>testapp</module>
>          <socket>127.0.0.1:8080</socket>
>         <processes>1</processes>
>      </uwsgi>
>
>
> </wsgiapps>
>
> Now simply run uwsgi specifying the id:
>
> ./uwsgi -x megaconf.xml:one.unbit.it
> ./uwsgi -x megaconf.xml:two.unbit.it
> ./uwsgi -x megaconf.xml:three.unbit.it
> ./uwsgi -x megaconf.xml:test
>
> Another useful feature is the "mode" option. You can define xml parameters
> based on the "mode"
>
> hello.xml
>
> <uwsgi>
>      <module>funnyapp</module>
>      <processes mode="development">1</processes>
>      <processes mode="production">8</processes>
>      <master mode="production" />
>      <memory-report mode="development" />
> </uwsgi>
>
> ./uwsgi -x hello.xml --mode production
>
> will load only the option marked as "production" and those without mode
>
> ./uwsgi -x hello.xml --mode development
>
> will load only the option marked as "development" and those without mode
>
> ./uwsgi -x hello.xml
>
> will load all the options
>
>
> - Stylish module loading
>
> You can load module/callable using "gunicorn" style:
>
> ./uwsgi -s :3031 --env TRAC_ENV=/tmp/mytrac -w trac.web.main:dispatch_request
>
> will run trac on port 3031 without defining config files :)
>
> (look at the --env option)
>
> --- Stll-in-dev features ---
>
> the evdis framework
> better app loaders
> performance counters
> ipv6
> remove unix socket file on exit
> safely discard http body
> logrotate
> better integration with supervisord (for users that do not want to use the uWSGI master process)
> AIX official support
> run-by-root improvements
>
>
> --
> Roberto De Ioris
> http://unbit.it
> JID: roberto at jabber.unbit.it
>
> _______________________________________________
> uWSGI mailing list
> uWSGI at lists.unbit.it
> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>    



More information about the uWSGI mailing list