Python Flask production server options Gunicorn vs Waitress

Learn the Secret

Get  our 2 Free Books

Get these now which land directly to their inbox.
Invalid email address
(Last Updated On: January 14, 2021)

Here is a common error I get with Flash Waitress web server I am currently testing: (should I go with Gunicon?)

ERROR:waitress:Socket error
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/waitress/channel.py”, line 118, in handle_write
flush()
File “/usr/local/lib/python3.6/site-packages/waitress/channel.py”, line 207, in _flush_some_if_lockable
self._flush_some()
File “/usr/local/lib/python3.6/site-packages/waitress/channel.py”, line 227, in _flush_some
num_sent = self.send(chunk)
File “/usr/local/lib/python3.6/site-packages/waitress/wasyncore.py”, line 433, in send
result = self.socket.send(data)
TimeoutError: [Errno 110] Connection timed out

I tried to be compliant with LiteSpeed which my hosting provider will support. There are a few ways to do this with:

https://www.litespeedtech.com/docs/lsapi/python

This commerical Litespeed link should confirm this OpenLiteSpeed should work

https://www.litespeedtech.com/support/forum/threads/i-am-not-able-to-run-python.18528/

This option with LIteSpeed was not possible. I did however, get uswgi server working from this example on my web hosting provider:

https://riptutorial.com/flask/example/16286/using-uwsgi-to-run-a-flask-application

Here are some links to consider

Host it on Heroku? https://www.heroku.com/pricing
Good general overview:
https://vsupalov.com/flask-web-server-in-production/

I am using Waitress but it seems to time out quite a bit. This above article recommend \s Gunicorn.

https://www.toptal.com/flask/flask-production-recipes

Second article to recommend both Gunicorn but use Nginx instead?

How configure Nginx for Flask
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04
Another Gunicorn with Nginx
https://medium.com/faun/deploy-flask-app-with-nginx-using-gunicorn-7fda4f50066a

A warning about databases for Gunicorn
https://github.com/etianen/django-herokuapp/issues/9

Comparison across other Python web servers
https://www.appdynamics.com/blog/engineering/a-performance-analysis-of-python-wsgi-servers-part-2/

https://www.reddit.com/r/Python/comments/76g3vf/which_wsgi_servers_are_safe_to_expose_to_the/
This says Waitress is safe
https://docs.pylonsproject.org/projects/waitress/en/latest/design.html

Pros for Waitress over Gunicorn
https://www.reddit.com/r/Python/comments/qupyf/waitress_productionquality_purepython_wsgi_server/

Gunicorn vs Waitress https://stackshare.io/stackups/gunicorn-vs-waitress

Overall list of Python production ready servers

https://towardsdatascience.com/my-favorite-python-servers-to-deploy-into-production-d92289764fbe

Here is an overall overview with example scripts included:

http://fgimian.github.io/blog/2012/12/08/setting-up-a-rock-solid-python-development-web-server/

Gunicon is top and Waitress is second. Let me give Gunicorn a shot in a way to eliminate these socket errors.

This appears to be a simple way to setup Gunicon with Nginx

View at Medium.com

For CentOS, I had to install Development Tools

Install Build-Essentials for CentOS, RHEL and Ubuntu

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!
This entry was posted in Quant Development and tagged , on by .

About caustic

Hi i there My name is Bryan Downing. I am part of a company called QuantLabs.Net This is specifically a company with a high profile blog about technology, trading, financial, investment, quant, etc. It posts things on how to do job interviews with large companies like Morgan Stanley, Bloomberg, Citibank, and IBM. It also posts different unique tips and tricks on Java, C++, or C programming. It posts about different techniques in learning about Matlab and building models or strategies. There is a lot here if you are into venturing into the financial world like quant or technical analysis. It also discusses the future generation of trading and programming Specialties: C++, Java, C#, Matlab, quant, models, strategies, technical analysis, linux, windows P.S. I have been known to be the worst typist. Do not be offended by it as I like to bang stuff out and put priorty of what I do over typing. Maybe one day I can get a full time copy editor to help out. Do note I prefer videos as they are much easier to produce so check out my many video at youtube.com/quantlabs