aster.cloud aster.cloud
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
aster.cloud aster.cloud
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
  • Engineering
  • Software Engineering

How-To: Deploy Python Flask applications using NGINX and uWSGI – Configuration (Part 2 of 3)

  • aster_cloud
  • November 8, 2022
  • 2 minute read

After the installation of the requirement software, next is the configuration part. An application should have its own NGINX and uWSGI configuration. It’s not necessary to do this for NGINX but it is recommended. The reason is simple, for easier management. When you have multiple applications being managed, updating smaller settings is easier , less disruptive and safer to do.

uWSGI Configuration

A configuration is made for each application. For example if you have an multiple API and Web (e.g. Django) projects, each should have its own configuration file.


Partner with aster.cloud
for your next big idea.
Let us know here.



From our partners:

CITI.IO :: Business. Institutions. Society. Global Political Economy.
CYBERPOGO.COM :: For the Arts, Sciences, and Technology.
DADAHACKS.COM :: Parenting For The Rest Of Us.
ZEDISTA.COM :: Entertainment. Sports. Culture. Escape.
TAKUMAKU.COM :: For The Hearth And Home.
ASTER.CLOUD :: From The Cloud And Beyond.
LIWAIWAI.COM :: Intelligence, Inside and Outside.
GLOBALCLOUDPLATFORMS.COM :: For The World's Computing Needs.
FIREGULAMAN.COM :: For The Fire In The Belly Of The Coder.
ASTERCASTER.COM :: Supra Astra. Beyond The Stars.
BARTDAY.COM :: Prosperity For Everyone.

01. Create the uWSGI configuration in /etc/uwsgi/apps-available/.

$ sudo nano /etc/uwsgi/apps-available/geek_flask_app.ini

Set the content as follows

[uwsgi]
project         = %n
chdir           = /var/www/geek_flask_app
module          = app_wsgi
virtualenv      = /home/geek/geek-venv
plugins         = http,python3

socket          = /var/run/%n.sock
chmod-socket    = 666
http-socket     = 127.0.0.1:8081
logto2          = /var/log/uwsgi/%n.log

enable-threads  = true
vacuum          = true
die-on-term     = true
  • %n – Sets the value of the project to be the same as the filename w/o the extension. In this example it will be greek_flask_app

02. Create a symlink in /var/uwsgi-emperor/vassals/.

$ sudo ln -s /etc/uwsgi/apps-available/geek_flask_app.ini /etc/uwsgi-emperor/vassals/geek_flask_app.ini

03. Reload the uwsgi-emperor service.

$ sudo service uwsgi-emperor restart

04. To check if app is being deployed, see the uwsgi emperor log. Note that this will contain error as the application is not yet deployed.

$ sudo tail -f /var/log/uwsgi/emperor.log

Press Ctrl+C to exit

uWSGI Configuration

Run uWSGI Emperor service as root user

01. Edit the emperor configuration.

Note: To avoid file permission issues, run the service as root user. 

$ sudo nano /etc/uwsgi-emperor/emperor.ini

02. Comment the uid and gid. This will set the process owner for uWSGI emperor to be the root user. If you plan to use a specific user, change the values here. For this example we are commenting these lines of configs.

# Comment the following
# user identifier of uWSGI processes
#uid = www-data

# group identifier of uWSGI processes
#gid = www-data

03. Restart the uwsgi emperor process.

$ sudo service uwsgi-emperor restart

NGINX Configuration

01. Create the nginx configuration for the flask app.

Read More  Introducing Code Llama, A State-Of-The-Art Large Language Model For Coding

Note: This nginx configuration assumes that only one site is enabled. For multiple enabled sites, define the server_name for each site.

$ sudo nano /etc/nginx/sites-available/geek_flask_app.conf

Set the content as follows.

server
{
  listen        80;
  server_name   _;

  location /
  {
    include     uwsgi_params;
    uwsgi_pass  unix:/run/geek_flask_app.sock;
  }
}

02. Create a symlink in /etc/nginx/sites-enabled/.

$ sudo ln -s /etc/nginx/sites-available/geek_flask_app.conf /etc/nginx/sites-enabled/geek_flask_app.conf

03. Test nginx configuration. It should show that there are no configuration errors. If there are, double check them and validate it using the following command.

$ sudo nginx -t

04. Reload the NGINX service to apply the changes

$ sudo service nginx reload

For enquiries, product placements, sponsorships, and collaborations, connect with us at [email protected]. We'd love to hear from you!

Our humans need coffee too! Your support is highly appreciated, thank you!

aster_cloud

Related Topics
  • Flask
  • Python
  • Tutorials
  • Ubuntu
  • Ubuntu 22.04
  • uWSGI
You May Also Like
Penguin
View Post
  • Engineering

How To Find And Fix Broken Packages On Linux

  • September 19, 2023
View Post
  • Design
  • Engineering

4 Ways To Improve Long Term Kubernetes Capacity And Cloud Costs In Kubernetes

  • September 9, 2023
View Post
  • Engineering
  • Platforms
  • Research
  • Technology

Fast-Tracking Fusion Energy’s Arrival With AI And Accessibility

  • September 6, 2023
View Post
  • Cloud-Native
  • Computing
  • Engineering
  • Platforms

Farewell EC2-Classic, It’s Been Swell

  • September 4, 2023
View Post
  • Software Engineering
  • Technology

Introducing Code Llama, A State-Of-The-Art Large Language Model For Coding

  • August 25, 2023
View Post
  • Engineering
  • Research

Architecting The Future Of Supercomputing

  • August 23, 2023
Ruler, compass, and pen
View Post
  • Engineering
  • Gears

An Engineer’s Starter Pack – Must Have Supplies For The Trade

  • August 17, 2023
Rope
View Post
  • Computing
  • Design
  • Engineering

The Tug-Of-War Between Cloud Optimization And Cloud Innovation

  • August 17, 2023

Stay Connected!
LATEST
  • 1
    Nvidia H100 Tensor Core GPUs Come To Oracle Cloud
    • September 24, 2023
  • 2
    Combining AI With A Trusted Data Approach On IBM Power To Fuel Business Outcomes
    • September 21, 2023
  • 3
    Start Your Ubuntu Confidential VM With Intel® TDX On Google Cloud
    • September 20, 2023
  • Microsoft and Adobe 4
    Microsoft And Adobe Partner To Deliver Cost Savings And Business Benefits
    • September 20, 2023
  • Coffee | Laptop | Notebook | Work 5
    First HP Work Relationship Index Shows Majority of People Worldwide Have an Unhealthy Relationship with Work
    • September 20, 2023
  • 6
    Oracle Expands Distributed Cloud Offerings to Help Organizations Innovate Anywhere
    • September 20, 2023
  • 7
    Huawei Connect 2023: Accelerating Intelligence For Shared Success
    • September 20, 2023
  • 8
    Huawei Releases Data Center 2030, Leading Innovation and Development of New Data Centers
    • September 20, 2023
  • Penguin 9
    How To Find And Fix Broken Packages On Linux
    • September 19, 2023
  • Volkswagen 10
    Volkswagen Races Toward Next-Gen Automotive Manufacturing Leadership With Google Cloud And T-Systems
    • September 19, 2023
about
Hello World!

We are aster.cloud. We’re created by programmers for programmers.

Our site aims to provide guides, programming tips, reviews, and interesting materials for tech people and those who want to learn in general.

We would like to hear from you.

If you have any feedback, enquiries, or sponsorship request, kindly reach out to us at:

[email protected]
Most Popular
  • 1
    VMware Scales Multi-Cloud Security With Workforce Identity Federation
    • September 18, 2023
  • Intel Innovation 2
    Intel Innovation 2023
    • September 15, 2023
  • 3
    Microsoft And Oracle Expand Partnership To Deliver Oracle Database Services On Oracle Cloud Infrastructure In Microsoft Azure
    • September 14, 2023
  • 4
    Real-Time Ubuntu Is Now Available In AWS Marketplace
    • September 12, 2023
  • 5
    IBM Brings Watsonx To ESPN Fantasy Football With New Waiver Grades And Trade Grades
    • September 13, 2023
  • /
  • Technology
  • Tools
  • About
  • Contact Us

Input your search keywords and press Enter.