Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.070 X-Spam-Evidence: '*H*': 0.86; '*S*': 0.00; 'root': 0.05; 'subject:Python': 0.06; 'layers': 0.07; 'suppose': 0.07; 'python': 0.11; 'language.': 0.14; 'apache': 0.15; 'subject:WSGI': 0.16; 'wsgi': 0.16; 'wrote:': 0.18; 'looked': 0.18; 'settings': 0.22; 'email addr:gmail.com>': 0.22; 'installation': 0.23; 'simpler': 0.24; "i've": 0.25; '>': 0.26; 'header:In-Reply-To:1': 0.27; 'especially': 0.30; 'message-id:@mail.gmail.com': 0.30; 'gives': 0.31; 'code': 0.31; 'requests': 0.31; 'serve': 0.31; 'becoming': 0.31; 'concern': 0.31; 'up:': 0.31; 'stuff': 0.32; 'run': 0.32; 'running': 0.33; 'basic': 0.35; 'etc': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'should': 0.36; 'application': 0.37; 'las': 0.37; 'server': 0.38; 'to:addr:python- list': 0.38; 'list,': 0.38; 'skip:& 20': 0.39; 'to:addr:python.org': 0.39; 'enough': 0.39; 'even': 0.60; 'skip:u 10': 0.60; 'eventually': 0.60; 'hope': 0.61; 'field': 0.63; 'dear': 0.65; 'latest': 0.67; 'listening': 0.74; 'special': 0.74; '2014,': 0.84; 'learn.': 0.84; 'routines': 0.84; 'verifying': 0.84; '\xa0but': 0.84; 'auditing': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=acEh+An45+5gNBPUIIzSX4AeKdDTIwlHTIyZMwfVqcs=; b=08ZaAoxFxSd/olZBcooy5dsAVi+vuGbZpwPQrwSEN5QftHb3f4Mkt2yfsn+NRe2PYo pqWVSBLpLaAY/5Fo8H16Ui1Lz1a4FtfD5PqxV5x/OOi3OaQu6QOg13Rt+IjdcqqsQzR0 jr80sssDobJFVp574ZfFTK7SV2yljxX/3jGgoicNw/mqW4Tg4ttw5LH2x5Lb+iO4d0Uw uvuMGc4m/ECx83xjFLkDFnvS+l1xRGAgsDthazbKYGGmu+utDVN55vr66B+UxQd4HUPQ 54JdnBa0fY38Ny+LKmvsxAl9tcCJfEHZgOAeBNHvgoK9nAjUkn/Hnlfb9v+CTMSMGHOe SHHQ== MIME-Version: 1.0 X-Received: by 10.14.149.131 with SMTP id x3mr17012362eej.7.1391984973566; Sun, 09 Feb 2014 14:29:33 -0800 (PST) In-Reply-To: <35c48ba6-6d1a-4e3b-a9a5-0b47f6c9ae83@googlegroups.com> References: <35c48ba6-6d1a-4e3b-a9a5-0b47f6c9ae83@googlegroups.com> Date: Sun, 9 Feb 2014 22:29:33 +0000 Subject: Python (?) webserver for WSGI From: Nicholas Cole To: Python Content-Type: multipart/alternative; boundary=089e01628212e1d97b04f200c1fb X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 90 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1391984974 news.xs4all.nl 2911 [2001:888:2000:d::a6]:52928 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:65785 --089e01628212e1d97b04f200c1fb Content-Type: text/plain; charset=ISO-8859-1 On Sunday, 9 February 2014, Asaf Las > wrote: > On Sunday, February 9, 2014 11:05:58 PM UTC+2, Nicholas wrote: > > Dear List, > > > > > > > > What is the latest "best-practice" for deploying a python wsgi > > application into production? > > > > For development, I've been using CherryPyWSGIServer which has been > > working very well (and the code is small enough to actually ship with > > my application). But I would like some way of deploying a server > > listening on port 80 (and then dropping root privileges). > > > > I have looked at using gunicorn + ngnix, but that gives me 3 layers > > that I need to set up: > > > > - my own application > > - gunicorn > > - ngnix > > Yes, but are you after simplicity of setup or reliability? > If security is your concern - eventually you have to dive into > routines of verifying settings auditing etc and spend > week(s) if you have no solid prior experience in that field and even > after that there is still a lot to learn. > [snip] Yes, I managed a large apache installation for some years. I suppose that my hope was that in 2014 there might be some better, simpler way to run smaller web applications, especially with the tulip async stuff becoming part of the language. I don't think running a WSGI application to serve basic requests should NEED a lot of special setting up --089e01628212e1d97b04f200c1fb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Sunday, 9 February 2014, Asaf Las <roegl= td@gmail.com> wrote:
On Sunday, February 9, 2014 11:05:58 PM UTC+2, Nicholas wrote:
> Dear List,
>
>
>
> What is the latest "best-practice" for deploying a python ws= gi
> application into production?
>
> For development, I've been using CherryPyWSGIServer which has been=
> working very well (and the code is small enough to actually ship with<= br> > my application). =A0But I would like some way of deploying a server > listening on port 80 (and then dropping root privileges).
>
> I have looked at using gunicorn + ngnix, but that gives me 3 layers > that I need to set up:
>
> - my own application
> - gunicorn
> - ngnix

Yes, but are you after simplicity of setup or reliability?
If security is your concern - eventually you have to dive into
routines of verifying settings auditing etc and spend
week(s) if you have no solid prior experience in that field and even
after that there is still a lot to learn.

[snip]

Yes, I man= aged a large apache installation for some years. =A0I suppose that my hope = was that in 2014 there might be some better, simpler way to run smaller web= applications, especially with the tulip=A0async stuff=A0becoming part of t= he language. =A0I don't think running a WSGI application to serve basic= requests should NEED a lot of special setting up</idealism>


--089e01628212e1d97b04f200c1fb--