Gunicorn runs the WSGI HTTP server, but typically you'll want to run
Apache or NGINX ahead of that. This gives some benefits:
- Apache / NGINX are really fast at serving static files, much better than
having Python/Gunicorn do this
- Apache / NGINX have built-in facilities for using TLS/SSL, while doing
so in Gunicorn is a pain
- You can load balance across multiple Gunicorn instances from one web
server. This is more used in scale-out solutions, so not much of a benefit
on IBM i where most people scale-up instead.
Additionally, there's more info here:
[1]
https://stackoverflow.com/questions/8739871/why-does-unicorn-need-to-be-deployed-together-with-nginx/36954749#36954749
(While that answer talks about Unicorn ruby application server, the
Gunicorn Python application server is based on the same philosophies.)
----- Original message -----
From: Quintin Holmberg <qholmberg@xxxxxxxxxxxxxxxx>
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxxxxxxxx>
To: IBMi Open Source Roundtable <opensource@xxxxxxxxxxxxxxxxxx>
Cc:
Subject: [EXTERNAL] Re: [IBMiOSS] Python WSGI Server
Date: Thu, Apr 30, 2020 11:05 AM
Kevin ... What is the purpose of the reverse proxy in this setup?
-----Original Message-----
From: OpenSource <opensource-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of
Kevin Adler
Sent: Thursday, April 30, 2020 10:54 AM
To: opensource@xxxxxxxxxxxxxxxxxx
Subject: Re: [IBMiOSS] Python WSGI Server
The IBM i version of Apache does not ship with mod_wsgi so you'd have
to
build it yourself and I don't think that's possible.
We typically recommend using [1][2]
https://gunicorn.org/ with a
reverse proxy
(can be done from Apache or NGINX). I wrote a STRTCPSVR plugin for
Gunicorn at
[2][3]
https://github.com/OSSILE/OSSILE/tree/master/main/c_gunicorn_server ;.
----- Original message -----
From: Quintin Holmberg <qholmberg@xxxxxxxxxxxxxxxx>
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxxxxxxxx>
To: IBMi Open Source Roundtable <opensource@xxxxxxxxxxxxxxxxxx>
Cc:
Subject: [EXTERNAL] [IBMiOSS] Python WSGI Server
Date: Thu, Apr 30, 2020 10:28 AM
We have a student group doing a Python based dashboard for us. I'm
getting the IBMi ready for a Flask based app so, I need a WSGI
container. This is new to me. It seems there are a variety of
options
including mod_wsgi for Apache.
Two questions ...
1) Could anyone who has configured a WSGI container on the IBMi
describe
for me what they used and, possibly, provide some links to
configuration?
2) Does anyone know of a good instruction set for configuring
mod_wsgi
in Apache on the IBMi?
We already use Apache for some web applications so, I'm leaning
that
directions. That said, I'm open to information about "better"
options
and why they might be preferable.
Thanks.
Quintin Holmberg
Director of IT
Dayton Rogers Manufacturing Co.
qholmberg@xxxxxxxxxxxxxxxx
NOTICE – this email and any attached file (“Information”) may
contain
technical data subject to the U.S. International Traffic in Arms
Regulation (“ITAR”) 22 CFR parts 120-130. The Information may not
be
shared with any Foreign Person, as that term is defined in ITAR.
The
Information is sent only for the use of the intended recipient and
may
contain legally privileged and/or confidential information. If you
are
not the intended recipient, you are notified that any dissemination
or
copying of the Information is prohibited. If you received the
Information in error you must notify the sender immediately and
destroy
the Information without printing or saving it.
--
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
[3][4]
https://lists.midrange.com/mailman/listinfo/opensource ;
or email: OpenSource-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at [4][5]
https://archive.midrange.com/opensource ;.
Help support midrange.com by shopping at amazon.com with our
affiliate
link: [5][6]
https://amazon.midrange.com ;
References
Visible links
1. [7]
https://gunicorn.org/ ;
2.
[8]
https://github.com/OSSILE/OSSILE/tree/master/main/c_gunicorn_server ;
3. [9]
https://lists.midrange.com/mailman/listinfo/opensource ;
4. [10]
https://archive.midrange.com/opensource ;
5. [11]
https://amazon.midrange.com/ ;
--
This is the IBMi Open Source Roundtable (OpenSource) mailing list To
post a message email: OpenSource@xxxxxxxxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: [12]
https://lists.midrange.com/mailman/listinfo/opensource ;
or email: OpenSource-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
[13]
https://archive.midrange.com/opensource ;.
Help support midrange.com by shopping at amazon.com with our affiliate
link: [14]
https://amazon.midrange.com ;
--
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: [15]
https://lists.midrange.com/mailman/listinfo/opensource ;
or email: OpenSource-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at [16]
https://archive.midrange.com/opensource ;.
Help support midrange.com by shopping at amazon.com with our affiliate
link: [17]
https://amazon.midrange.com ;
References
Visible links
1.
https://stackoverflow.com/questions/8739871/why-does-unicorn-need-to-be-deployed-together-with-nginx/36954749#36954749
2.
https://gunicorn.org/
3.
https://github.com/OSSILE/OSSILE/tree/master/main/c_gunicorn_server
4.
https://lists.midrange.com/mailman/listinfo/opensource
5.
https://archive.midrange.com/opensource
6.
https://amazon.midrange.com/
7.
https://gunicorn.org/
8.
https://github.com/OSSILE/OSSILE/tree/master/main/c_gunicorn_server
9.
https://lists.midrange.com/mailman/listinfo/opensource
10.
https://archive.midrange.com/opensource
11.
https://amazon.midrange.com/
12.
https://lists.midrange.com/mailman/listinfo/opensource
13.
https://archive.midrange.com/opensource
14.
https://amazon.midrange.com/
15.
https://lists.midrange.com/mailman/listinfo/opensource
16.
https://archive.midrange.com/opensource
17.
https://amazon.midrange.com/
As an Amazon Associate we earn from qualifying purchases.