{"id":40266,"date":"2022-02-23T12:30:00","date_gmt":"2022-02-23T18:30:00","guid":{"rendered":"https:\/\/www.rosehosting.com\/blog\/?p=40266"},"modified":"2022-06-03T03:31:24","modified_gmt":"2022-06-03T08:31:24","slug":"how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/","title":{"rendered":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"742\" height=\"372\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg\" alt=\"how to deploy flask application with nginx and gunicorn on ubuntu 20.04\" class=\"wp-image-40267\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg 742w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04-300x150.jpg 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04-150x75.jpg 150w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/figure>\n\n\n\n<p>Flask is a small, lightweight, and micro web framework written in Python. It allows you to develop web applications easily without any tools or libraries. This web application may be a blog, wiki page, web pages, web-based calendar application, or a commercial website. It is simple, easy to use, easy to learn, and beginner-friendly because it does not require any dependencies.<\/p>\n\n\n\n<p>In this tutorial, we will show you how to <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\">deploy the Flask application with Gunicorn and Nginx on Ubuntu 20.04<\/a>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69fd0a080ad58\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69fd0a080ad58\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Prerequisites\" >Prerequisites<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Log-in-and-Update-Packages\" >Log in and Update Packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Install-Required-Dependencies\" >Install Required Dependencies<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Install-Nginx-Web-Server\" >Install Nginx Web Server<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Create-a-Virtual-Environment-for-Flask-Application\" >Create a Virtual Environment for Flask Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Create-a-Flask-Application\" >Create a Flask Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Create-a-WSGI-Entry-Point-for-Gunicorn\" >Create a WSGI Entry Point for Gunicorn<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Create-a-Systemd-Service-File-for-Flask-Application\" >Create a Systemd Service File for Flask Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Configure-Nginx-as-a-Reverse-Proxy-for-Flask-Application\" >Configure Nginx as a Reverse Proxy for Flask Application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#Access-Flask-Application\" >Access Flask Application<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-prerequisites\"><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>A Ubuntu 20.04 VPS with root access enabled, or a user with sudo privileges.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-log-in-and-update-packages\"><span class=\"ez-toc-section\" id=\"Log-in-and-Update-Packages\"><\/span>Log in and Update Packages<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First, we\u2019re going to need to log into our server using SSH. You can do that by entering this command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ssh root@IP_Address -p Port_Number<\/pre>\n\n\n\n<p>Remember to replace <code>root<\/code> with your username if you are not using the root user. Change <code>IP_Address<\/code> and <code>Port_Number<\/code> according to your server\u2019s IP address and SSH port number.<\/p>\n\n\n\n<p>Once you are logged in, you should update all of your packages to their latest available versions.<\/p>\n\n\n\n<p>apt-get update -y<br>apt-get upgrade -y<\/p>\n\n\n\n<p>Once all the packages are up-to-date, restart your server to apply the configuration changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-install-required-dependencies\"><span class=\"ez-toc-section\" id=\"Install-Required-Dependencies\"><\/span>Install Required Dependencies<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Flask is a python-based application. So Python and other required dependencies must be installed on your server. If not installed you can install all of them with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install python3 python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools -y<\/pre>\n\n\n\n<p>Once all the dependencies are installed, install the Python virtual environment package using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install python3-venv -y<\/pre>\n\n\n\n<p>Once installed, you can proceed to the next step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-install-nginx-web-server\"><span class=\"ez-toc-section\" id=\"Install-Nginx-Web-Server\"><\/span>Install Nginx Web Server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In this tutorial, we will use Nginx as a reverse proxy for the Flask application. So you will need to install the Nginx web server package to your server. You can install it using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install nginx -y<\/pre>\n\n\n\n<p>Once the Nginx is installed, start and enable the Nginx service using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl start nginx\nsystemctl enable nginx<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-virtual-environment-for-flask-application\"><span class=\"ez-toc-section\" id=\"Create-a-Virtual-Environment-for-Flask-Application\"><\/span>Create a Virtual Environment for Flask Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, you will need to create a virtual environment for the Flask application.<\/p>\n\n\n\n<p>First, create a project directory with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir ~\/project<\/pre>\n\n\n\n<p>Next, change the directory to your project and create a Python virtual environment with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/project\npython3 -m venv venv<\/pre>\n\n\n\n<p>Next, activate your environment with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source venv\/bin\/activate<\/pre>\n\n\n\n<p>Next, install Gunicorn, Flask, and other components with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install wheel\npip install gunicorn flask<\/pre>\n\n\n\n<p>Once you are finished, you can proceed to the next step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-flask-application\"><span class=\"ez-toc-section\" id=\"Create-a-Flask-Application\"><\/span>Create a Flask Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, you will need to create a sample Flask application for your project. Run the following command to create it inside your project directory:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/project\/flaskapp.py<\/pre>\n\n\n\n<p>Add the following codes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from flask import Flask\napp = Flask(__name__)\n@app.route(\"\/\")\ndef hello():\n    return \"Welcome to Flask Application!\"\nif __name__ == \"__main__\":\n    app.run(host='0.0.0.0')\n<\/pre>\n\n\n\n<p>Save and close the file then verify your application with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/project\/\npython3 flaskapp.py<\/pre>\n\n\n\n<p>If everything is fine, you should get the following output:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> * Serving Flask app 'flaskapp' (lazy loading)\n * Environment: production\n   WARNING: This is a development server. Do not use it in a production deployment.\n   Use a production WSGI server instead.\n * Debug mode: off\n * Running on all addresses.\n   WARNING: This is a development server. Do not use it in a production deployment.\n * Running on http:\/\/69.28.84.227:5000\/ (Press CTRL+C to quit)\n<\/pre>\n\n\n\n<p>Press CTRL+C to close the application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-wsgi-entry-point-for-gunicorn\"><span class=\"ez-toc-section\" id=\"Create-a-WSGI-Entry-Point-for-Gunicorn\"><\/span>Create a WSGI Entry Point for Gunicorn<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, you will need to create a WSGI entry point to serve your application via Gunicorn.<\/p>\n\n\n\n<p>Run the following command to create it:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano ~\/project\/wsgi.py<\/pre>\n\n\n\n<p>Add the following lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from flaskapp import app\nif __name__ == \"__main__\":\n    app.run()\n<\/pre>\n\n\n\n<p>Save and close the file then verify whether Gunicorn can serve the application correctly using the command below:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/project\/\ngunicorn --bind 0.0.0.0:5000 wsgi:app<\/pre>\n\n\n\n<p>If everything is fine, you should get the following output:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[2021-12-23 10:37:15 +0000] [9352] [INFO] Starting gunicorn 20.1.0\n[2021-12-23 10:37:15 +0000] [9352] [INFO] Listening at: http:\/\/0.0.0.0:5000 (9352)\n[2021-12-23 10:37:15 +0000] [9352] [INFO] Using worker: sync\n[2021-12-23 10:37:15 +0000] [9354] [INFO] Booting worker with pid: 9354\n<\/pre>\n\n\n\n<p>Press CTRL+C to stop the application. Next, deactivate from the Python virtual environment with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">deactivate<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-systemd-service-file-for-flask-application\"><span class=\"ez-toc-section\" id=\"Create-a-Systemd-Service-File-for-Flask-Application\"><\/span>Create a Systemd Service File for Flask Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, you will need to create a systemd unit file for the Flask application. You can create it with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/systemd\/system\/flask.service<\/pre>\n\n\n\n<p>Add the following lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Unit]\nDescription=Gunicorn instance to serve Flask\nAfter=network.target\n[Service]\nUser=root\nGroup=www-data\nWorkingDirectory=\/root\/project\nEnvironment=\"PATH=\/root\/project\/venv\/bin\"\nExecStart=\/root\/project\/venv\/bin\/gunicorn --bind 0.0.0.0:5000 wsgi:app\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n\n\n\n<p>Save and close the file then set proper ownership and permission to flask project:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chown -R root:www-data \/root\/project\nchmod -R 775 \/root\/project<\/pre>\n\n\n\n<p>Next, reload the systemd daemon with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl daemon-reload<\/pre>\n\n\n\n<p>Next, start the flask service and enable it to start at system reboot:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl start flask\nsystemctl enable flask<\/pre>\n\n\n\n<p>Next, verify the status of the flask with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl status flask<\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u25cf flask.service - Gunicorn instance to serve Flask\n     Loaded: loaded (\/etc\/systemd\/system\/flask.service; disabled; vendor preset: enabled)\n     Active: active (running) since Thu 2021-12-23 10:38:26 UTC; 8s ago\n   Main PID: 9376 (gunicorn)\n      Tasks: 2 (limit: 2353)\n     Memory: 27.8M\n     CGroup: \/system.slice\/flask.service\n             \u251c\u25009376 \/root\/project\/venv\/bin\/python3 \/root\/project\/venv\/bin\/gunicorn --bind 0.0.0.0:5000 wsgi:app\n             \u2514\u25009393 \/root\/project\/venv\/bin\/python3 \/root\/project\/venv\/bin\/gunicorn --bind 0.0.0.0:5000 wsgi:app\n\nDec 23 10:38:26 ubuntu2004 systemd[1]: Started Gunicorn instance to serve Flask.\nDec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Starting gunicorn 20.1.0\nDec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Listening at: http:\/\/0.0.0.0:5000 (9376)\nDec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Using worker: sync\nDec 23 10:38:26 ubuntu2004 gunicorn[9393]: [2021-12-23 10:38:26 +0000] [9393] [INFO] Booting worker with pid: 9393\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configure-nginx-as-a-reverse-proxy-for-flask-application\"><span class=\"ez-toc-section\" id=\"Configure-Nginx-as-a-Reverse-Proxy-for-Flask-Application\"><\/span>Configure Nginx as a Reverse Proxy for Flask Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, you will need to configure Nginx as a reverse proxy to serve the Flask application through port 80. To do so, create an Nginx virtual host configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/nginx\/conf.d\/flask.conf<\/pre>\n\n\n\n<p>Add the following lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">server {\n    listen 80;\n    server_name flask.example.com;\n    location \/ {\n        include proxy_params;\n        proxy_pass  http:\/\/127.0.0.1:5000;\n    }\n}\n<\/pre>\n\n\n\n<p>Save and close the file then verify the Nginx for any syntax error:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nginx -t<\/pre>\n\n\n\n<p>You should see the following output:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful\n<\/pre>\n\n\n\n<p>Finally, restart the Nginx service to apply the changes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl restart nginx<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-access-flask-application\"><span class=\"ez-toc-section\" id=\"Access-Flask-Application\"><\/span>Access Flask Application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>At this point, your Flask application is installed, configured, and hosted with an Nginx proxy. You can now access it using the URL <strong>http:\/\/flask.example.com<\/strong>. You should see the following page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"785\" height=\"361\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.png\" alt=\"\" class=\"wp-image-40284\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.png 785w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04-300x138.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04-150x69.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04-768x353.png 768w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><\/figure>\n\n\n\n<p>Congratulations! you have successfully deployed the Flask application with Gunicorn and Nginx on Ubuntu 20.04 server.<\/p>\n\n\n\n<p>However, if you are one of our <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\">Managed Ubuntu Hosting<\/a> customers, or if you use one of our Managed VPS Hosting plans, you don\u2019t have to install the Flask application on your Ubuntu 20.04 VPS \u2013 simply ask our admins, sit back, and relax. Our admins will install the Flask application on Ubuntu 20.04 (or any other OS that you have with us) for you immediately.<\/p>\n\n\n\n<p>PS. If you liked this post about how to install the Flask application on an Ubuntu 20.04 VPS, please share it with your friends on the social networks using the buttons below, or simply leave a comment in the comments section. Thanks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flask is a small, lightweight, and micro web framework written in Python. It allows you to develop web applications easily &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#more-40266\" aria-label=\"Read more about How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":40267,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,1698],"tags":[1985,1789,49,1839],"class_list":["post-40266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-ubuntu","tag-flask","tag-gunicorn","tag-nginx","tag-ubuntu-20-04","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting<\/title>\n<meta name=\"description\" content=\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04\" \/>\n<meta property=\"og:description\" content=\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-23T18:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-03T08:31:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg?v=1643196497\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04\",\"datePublished\":\"2022-02-23T18:30:00+00:00\",\"dateModified\":\"2022-06-03T08:31:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/\"},\"wordCount\":833,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg\",\"keywords\":[\"flask\",\"gunicorn\",\"nginx\",\"Ubuntu 20.04\"],\"articleSection\":[\"Tutorials\",\"Ubuntu\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/\",\"name\":\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg\",\"datePublished\":\"2022-02-23T18:30:00+00:00\",\"dateModified\":\"2022-06-03T08:31:24+00:00\",\"description\":\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg\",\"width\":742,\"height\":372,\"caption\":\"how to deploy flask application with nginx and gunicorn on ubuntu 20.04\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/RoseHosting\",\"https:\\\/\\\/x.com\\\/rosehosting\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/rosehosting\\\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\\\/\\\/www.rosehosting.com\",\"https:\\\/\\\/www.facebook.com\\\/rosehosting.helpdesk\"],\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/author\\\/jwilson\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting","description":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/","og_locale":"en_US","og_type":"article","og_title":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04","og_description":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting","og_url":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2022-02-23T18:30:00+00:00","article_modified_time":"2022-06-03T08:31:24+00:00","og_image":[{"width":742,"height":372,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg?v=1643196497","type":"image\/jpeg"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04","datePublished":"2022-02-23T18:30:00+00:00","dateModified":"2022-06-03T08:31:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/"},"wordCount":833,"commentCount":9,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg","keywords":["flask","gunicorn","nginx","Ubuntu 20.04"],"articleSection":["Tutorials","Ubuntu"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/","url":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/","name":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg","datePublished":"2022-02-23T18:30:00+00:00","dateModified":"2022-06-03T08:31:24+00:00","description":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04 | RoseHosting","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/01\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20.04.jpg","width":742,"height":372,"caption":"how to deploy flask application with nginx and gunicorn on ubuntu 20.04"},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-deploy-flask-application-with-nginx-and-gunicorn-on-ubuntu-20-04\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Deploy Flask Application with Nginx and Gunicorn on Ubuntu 20.04"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/40266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=40266"}],"version-history":[{"count":2,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/40266\/revisions"}],"predecessor-version":[{"id":40287,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/40266\/revisions\/40287"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/40267"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=40266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=40266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=40266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}