Here are some articles on flask:
|
Here are some articles on flask:
|
How to install flash/gunicorn on Ubuntu 18.04 and use nginx as a reverse proxy:
* https://linoxide.com/linux-how-to/install-flask-python-ubuntu/
* also has info on interacting with the firewall and setting up a systemd unit file
|
How to install flash/gunicorn on Ubuntu 18.04 and use nginx as a reverse proxy:
* https://linoxide.com/linux-how-to/install-flask-python-ubuntu/
* also has info on interacting with the firewall and setting up a systemd unit file
|
|
= Notes =
flask has a built-in web server, but it does not scale.
|
However a flask app IS a WSGI-compatible app.
|
However a flask app IS a WSGI-compatible app.
|
See https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/
for how to install a flash application with Apache and mod_wsgi
(Apache is what I have on birdcloud.org)
|
See https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/
for how to install a flash application with Apache and mod_wsgi
(Apache is what I have on birdcloud.org)
|
See https://flask.palletsprojects.com/en/1.1.x/deploying/#deployment
for other deployment options.
|
See https://flask.palletsprojects.com/en/1.1.x/deploying/#deployment
for other deployment options.
|
https://www.howtoforge.com/tutorial/how-to-run-python-scripts-with-apache-and-mod_wsgi-on-ubuntu-18-04/
|
= Using mod_wsgi with apache =
See https://www.howtoforge.com/tutorial/how-to-run-python-scripts-with-apache-and-mod_wsgi-on-ubuntu-18-04/
|
Here's what I did on birdcloud:
* $ sudo apt-get install libapache2-mod-wsgi -y
* $ vi /var/www/owncloud/wsgy.py (see script for contents)
* $ chown www-data:www-data /var/www/owncloud/wsgy.py
* $ chmod 755 /var/www/owncloud/wsgy.py
* $ echo "WSGIScriptAlias /wsgi /var/www/owncloud/wsgy.py" >/etc/apache2/conf-available/wsgi.conf
* $ a2enconf wsgi
* (only need to run this once, to enable wsgi in apache configuration)
* $ systemctl restart apache2
* (need to run this every time you change the wsgi.conf file)
* $ browser https://birdcloud.org/wsgi
|
Here's what I did on birdcloud:
* $ sudo apt-get install libapache2-mod-wsgi -y
* $ vi /var/www/owncloud/wsgy.py (see script for contents)
* $ chown www-data:www-data /var/www/owncloud/wsgy.py
* $ chmod 755 /var/www/owncloud/wsgy.py
* $ echo "WSGIScriptAlias /wsgi /var/www/owncloud/wsgy.py" >/etc/apache2/conf-available/wsgi.conf
* $ a2enconf wsgi
* (only need to run this once, to enable wsgi in apache configuration)
* $ systemctl restart apache2
* (need to run this every time you change the wsgi.conf file)
* $ browser https://birdcloud.org/wsgi
|
I made another script /var/www/owncloud/test_wsgi.py that mirrors
the actions of /var/lib/cgi-bin/test_cgi.py
|
I made another script /var/www/owncloud/test_wsgi.py that mirrors
the actions of /var/lib/cgi-bin/test_cgi.py
|
I did this in order to test responsiveness of cgi vs wsgi.
* test.cgi loads in about 40 milliseconds
* test_wsgi loads in about 9 milliseconds
and that's with wsgi.mod_wsgi.script_reloading=1
|
I did this in order to test responsiveness of cgi vs wsgi.
* test.cgi loads in about 40 milliseconds
* test_wsgi loads in about 9 milliseconds
and that's with wsgi.mod_wsgi.script_reloading=1
|
|
== putting mod_wsgi into daemon mode to avoid app reload ==
See this information:
|
https://stackoverflow.com/questions/766601/mod-wsgi-force-reload-modules
|
https://stackoverflow.com/questions/766601/mod-wsgi-force-reload-modules
|
https://modwsgi.readthedocs.io/en/develop/user-guides/reloading-source-code.html
|
https://modwsgi.readthedocs.io/en/develop/user-guides/reloading-source-code.html
|