web.py deployment for iOS app backend
I am currently developing an iOS application that needs a backend to pull data from. I have implemented the backend using Python, web.py and pymongo.
I deployed everything on an EC2 instance, assigned an elastic IP to the instance that the iOS devices call to access the backend, and launch the application through SSH by doing:
nohup python main.py &
Everything works fine (couple dozen users a day, with potential to grow; data transferred is rarely more than a few kilobytes), but I'm wondering if this is the proper way to do things.
For instance on the web.py website, they explain ways to use web.py with Apache, lightppd etc.; are these just special cases, or should I开发者_如何学运维 be deploying my backend using one of those full featured servers?
FWIW, we use CherryPy (the web server "built into" web.py) behind nginx to serve most of the HTML at Oyster.com -- nginx splits the traffic across 2 or 3 web servers each running 4 Python processes, and we can easily handle 100s of requests per second.
However, we use a content delivery network (CDN) for our static resources like images and CSS.
I would absolutely use a full web server rather than the one built into web.py, although you should be okay for now if the traffic remains low. I think the one built into web.py is supposed to be used for debugging, rather than production.
It's mostly a matter of preference which of those servers you use, but I like Nginx with uWSGI.
精彩评论