{"id":4547,"date":"2020-01-22T10:36:52","date_gmt":"2020-01-22T10:36:52","guid":{"rendered":"https:\/\/www.sparksupport.com\/blog\/?p=4547"},"modified":"2020-01-24T07:10:05","modified_gmt":"2020-01-24T07:10:05","slug":"uwsgi","status":"publish","type":"post","link":"https:\/\/sparksupport.com\/blog\/uwsgi\/","title":{"rendered":"uWSGI"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WSGI<\/strong><br><\/h2>\n\n\n\n<p style=\"text-align:left\">Before going to uWSGI, one must know about WSGI and it\u2019s workflow.Web Server Gateway Interface is abbreviated as WSGI.WSGI simply is a specification that describes how a web server communicates web applications and how web applications can be chained together to process one request.Thus WSGI is a standard interface to route web apps and frameworks to web servers.<\/p>\n\n\n\n<p>While going deep, WSGI mainly has two parts:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-1024x373.png\" alt=\"\" class=\"wp-image-4579\" width=\"493\" height=\"179\" srcset=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-1024x373.png 1024w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-300x109.png 300w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-768x280.png 768w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram.png 1321w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li style=\"font-size: 16px;\"><strong>High profile web servers like Nginx or Apache<\/strong><\/li><li style=\"font-size: 16px;\"><strong>Web app made from a python script<\/strong><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p style=\"text-align:left\">The work flow is like a server executes the webapp and sends related information and callback to the app.On the application side, the request is processed and a response is setback to the server utilizing the callback function.<br><\/p>\n\n\n\n<p style=\"text-align:center\"><em>The pictorial representation of WSGI is depicted as follows:<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"84\" src=\"https:\/\/www.sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram.jpg\" alt=\"uWSGI block\" class=\"wp-image-4562\" srcset=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram.jpg 473w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-300x53.jpg 300w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure><\/div>\n\n\n\n<p>Bjoern, uWSGI, mod_wsgi, Meinheld, CherryPy and Gunicorn are some of WSGI servers available on the market today.<br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>uWSGI&nbsp;<\/strong><br><\/h3>\n\n\n\n<p style=\"text-align:left\">uWSGI is used for developing full stack development of Applications,Hosting services. The main advantage of uWSGI is that Hosting services,application servers,process managers,monitors all can be implemented using a common api and a common configuration style.It uses pluggable architecture so that it can be extended to support more platforms and languages.Main benefits are Versatility, performance, low-resource usage and reliability.<br><\/p>\n\n\n\n<p>Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design of <a href=\"https:\/\/www.sparksupport.com\/hire-python-developers-india.html\">python django development<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>WSGI Vs uWSGI<\/strong><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<p style=\"text-align:left\">WSGI was mainly built to integrate and work efficiently with Apache. Those who use Apache as their primary webserver, WSGI is the better option.<\/p>\n\n\n\n<p style=\"text-align:left\">UWSGI on other hand is lightweight and runs separately from your webserver.This will not overload your webserver process. Compared to WSGI,uWSGI is easy to setup.The downside of WSGI is that it only works with Apache. uWSGI on the other hand works with web servers like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_HTTP_Server\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"apache (opens in a new tab)\">apache<\/a>,nginx,cherokee etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-7.png\" alt=\"\" class=\"wp-image-4598\" width=\"634\" height=\"121\" srcset=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-7.png 705w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Untitled-Diagram-7-300x57.png 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/figure>\n\n\n\n<p>Create a directory with uWSGI configuration files:<\/p>\n\n\n\n<p>sudo mkdir -p \/etc\/uwsgi\/sites<\/p>\n\n\n\n<p>Create configuration file sample.ini with the following contents:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>+++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>[uwsgi]<\/p>\n\n\n\n<p>project = sample<\/p>\n\n\n\n<p>base = \/home\/django<br><\/p>\n\n\n\n<p>chdir = %(base)\/%(project)<\/p>\n\n\n\n<p>home = %(base)\/Env\/%(project)<\/p>\n\n\n\n<p>module = %(project).wsgi:application<br><\/p>\n\n\n\n<p>master = true<\/p>\n\n\n\n<p>processes = 2<br><\/p>\n\n\n\n<p>socket = %(base)\/%(project)\/%(project).sock<\/p>\n\n\n\n<p>chmod-socket = 664<\/p>\n\n\n\n<p>vacuum = true<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>+++++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/Webp.net-gifmaker-3.gif\" alt=\"\" class=\"wp-image-4603\" width=\"169\" height=\"169\"\/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Create an Upstart job for uWSGI:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>+++++++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>description &#8220;uWSGI&#8221;<\/p>\n\n\n\n<p>start on runlevel [2345]<\/p>\n\n\n\n<p>stop on runlevel [06]<\/p>\n\n\n\n<p>respawn<br><\/p>\n\n\n\n<p>env UWSGI=\/usr\/local\/bin\/uwsgi<\/p>\n\n\n\n<p>env LOGTO=\/var\/log\/uwsgi.log<br><\/p>\n\n\n\n<p>exec $UWSGI &#8211;master &#8211;emperor \/etc\/uwsgi\/sites &#8211;die-on-term &#8211;uid django &#8211;gid www-data &#8211;logto $LOGTO<br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>+++++++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>UWSGI as a systemctl service:<\/strong><br><\/h3>\n\n\n\n<p>With the help of Emperor we can integrate uwsgi django App with our init system.Emperor is a special uWSGI Django instance that will monitor specific events and will spawn\/stop\/reload instances (known as vassals, when managed by an Emperor) on demand.Thus,Emperor will rule all the apps itself,so that in it system will talk only with the Emperor.<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li style=\"font-size: 16px;\">Create a systemd service file (you can save it as \/etc\/systemd\/system\/emperor.uwsgi.service)<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>[Unit]<\/p>\n\n\n\n<p>Description=uWSGI Emperor<\/p>\n\n\n\n<p>After=syslog.target<br><\/p>\n\n\n\n<p>[Service]<\/p>\n\n\n\n<p>ExecStart=\/root\/uwsgi\/uwsgi &#8211;ini \/etc\/uwsgi\/emperor.ini<\/p>\n\n\n\n<p># Requires systemd version 211 or newer<\/p>\n\n\n\n<p>RuntimeDirectory=uwsgi<\/p>\n\n\n\n<p>Restart=always<\/p>\n\n\n\n<p>KillSignal=SIGQUIT<\/p>\n\n\n\n<p>Type=notify<\/p>\n\n\n\n<p>StandardError=syslog<\/p>\n\n\n\n<p>NotifyAccess=all<br><\/p>\n\n\n\n<p>[Install]<\/p>\n\n\n\n<p>WantedBy=multi-user.target<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>After that we can run,check and stop the status using the following commands:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li style=\"font-size: 16px;\">Run command:<\/li><\/ul>\n\n\n\n<p>systemctl start emperor.uwsgi.service<br><\/p>\n\n\n\n<ul><li style=\"font-size: 16px;\">Checking status:<\/li><\/ul>\n\n\n\n<p>systemctl status emperor.uwsgi.service<br><\/p>\n\n\n\n<ul><li style=\"font-size: 16px;\">Stopping command:<\/li><\/ul>\n\n\n\n<p>systemctl stop emperor.uwsgi.service<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Nginx and uWSGI<\/strong><br><\/h3>\n\n\n\n<p>Nginx is one of the best choice for the Python app which makes your website faster,even though low levels of traffic.With thousands of users, it performs with higher grade,fewer crashes,less downtime.The main advantage is that you can do static file caching or microcaching on Nginx,this will work better when run on a separate Nginx reverse proxy server.<\/p>\n\n\n\n<p style=\"text-align:center\"><em>The working flow is depicted as follows:<br><\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"95\" src=\"https:\/\/www.sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/banner.jpg\" alt=\"uWSGI flow chart\" class=\"wp-image-4586\" srcset=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/banner.jpg 713w, https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/banner-300x40.jpg 300w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p> Nginx can simply be implemented as a reverse proxy server in front of your uwsgi server. So the working be like this, Nginx faces the web and passes requests to application server.This will helps in making your website runs faster, reduces downtime,consumes less server resources and improves security.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WSGI Before going to uWSGI, one must know about WSGI and it\u2019s workflow.Web Server Gateway Interface is abbreviated as WSGI.WSGI simply is a specification that<\/p>\n","protected":false},"author":1,"featured_media":4582,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[242],"tags":[],"class_list":["post-4547","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uwsgi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>uWSGI Django server configuring steps |guide on uwsgi as system server<\/title>\n<meta name=\"description\" content=\"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sparksupport.com\/blog\/uwsgi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"uWSGI Django server configuring steps |guide on uwsgi as system server\" \/>\n<meta property=\"og:description\" content=\"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sparksupport.com\/blog\/uwsgi\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-22T10:36:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-24T07:10:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"853\" \/>\n\t<meta property=\"og:image:height\" content=\"392\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"SparkSupport\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SparkSupport\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/\"},\"author\":{\"name\":\"SparkSupport\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/b359b1e8bc00b1d71637775f13a9ec44\"},\"headline\":\"uWSGI\",\"datePublished\":\"2020-01-22T10:36:52+00:00\",\"dateModified\":\"2020-01-24T07:10:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/\"},\"wordCount\":687,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg\",\"articleSection\":[\"uWSGI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/sparksupport.com\/blog\/uwsgi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/\",\"url\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/\",\"name\":\"uWSGI Django server configuring steps |guide on uwsgi as system server\",\"isPartOf\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg\",\"datePublished\":\"2020-01-22T10:36:52+00:00\",\"dateModified\":\"2020-01-24T07:10:05+00:00\",\"description\":\"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server\",\"breadcrumb\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sparksupport.com\/blog\/uwsgi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage\",\"url\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg\",\"contentUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg\",\"width\":853,\"height\":392,\"caption\":\"Uwsgi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sparksupport.com\/blog\/uwsgi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sparksupport.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"uWSGI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#website\",\"url\":\"https:\/\/sparksupport.com\/blog\/\",\"name\":\"SparkSupport Blog\",\"description\":\"SparkSupport Blogs\",\"publisher\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sparksupport.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#organization\",\"name\":\"SparkSupport\",\"url\":\"https:\/\/sparksupport.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg\",\"contentUrl\":\"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg\",\"width\":216,\"height\":44,\"caption\":\"SparkSupport\"},\"image\":{\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/b359b1e8bc00b1d71637775f13a9ec44\",\"name\":\"SparkSupport\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g\",\"caption\":\"SparkSupport\"},\"url\":\"https:\/\/sparksupport.com\/blog\/author\/spark_wp_admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"uWSGI Django server configuring steps |guide on uwsgi as system server","description":"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server","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:\/\/sparksupport.com\/blog\/uwsgi\/","og_locale":"en_US","og_type":"article","og_title":"uWSGI Django server configuring steps |guide on uwsgi as system server","og_description":"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server","og_url":"https:\/\/sparksupport.com\/blog\/uwsgi\/","article_published_time":"2020-01-22T10:36:52+00:00","article_modified_time":"2020-01-24T07:10:05+00:00","og_image":[{"width":853,"height":392,"url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg","type":"image\/jpeg"}],"author":"SparkSupport","twitter_card":"summary_large_image","twitter_misc":{"Written by":"SparkSupport","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#article","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/"},"author":{"name":"SparkSupport","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/b359b1e8bc00b1d71637775f13a9ec44"},"headline":"uWSGI","datePublished":"2020-01-22T10:36:52+00:00","dateModified":"2020-01-24T07:10:05+00:00","mainEntityOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/"},"wordCount":687,"commentCount":0,"publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg","articleSection":["uWSGI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sparksupport.com\/blog\/uwsgi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/","url":"https:\/\/sparksupport.com\/blog\/uwsgi\/","name":"uWSGI Django server configuring steps |guide on uwsgi as system server","isPartOf":{"@id":"https:\/\/sparksupport.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage"},"thumbnailUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg","datePublished":"2020-01-22T10:36:52+00:00","dateModified":"2020-01-24T07:10:05+00:00","description":"Steps to run a uWSGI Django application and methods to run uwsgi as a system ctl service Complete guide to configuring a django server","breadcrumb":{"@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sparksupport.com\/blog\/uwsgi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#primaryimage","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2020\/01\/untitled-social_43766664-2.jpg","width":853,"height":392,"caption":"Uwsgi"},{"@type":"BreadcrumbList","@id":"https:\/\/sparksupport.com\/blog\/uwsgi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sparksupport.com\/blog\/"},{"@type":"ListItem","position":2,"name":"uWSGI"}]},{"@type":"WebSite","@id":"https:\/\/sparksupport.com\/blog\/#website","url":"https:\/\/sparksupport.com\/blog\/","name":"SparkSupport Blog","description":"SparkSupport Blogs","publisher":{"@id":"https:\/\/sparksupport.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sparksupport.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sparksupport.com\/blog\/#organization","name":"SparkSupport","url":"https:\/\/sparksupport.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","contentUrl":"https:\/\/sparksupport.com\/blog\/wp-content\/uploads\/2019\/08\/cropped-logo-1.jpg","width":216,"height":44,"caption":"SparkSupport"},"image":{"@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/sparksupport.com\/blog\/#\/schema\/person\/b359b1e8bc00b1d71637775f13a9ec44","name":"SparkSupport","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d86cc3c0d188e40e99abec16795ed658b95c89ab15427bd7254315e8115b40b?s=96&d=mm&r=g","caption":"SparkSupport"},"url":"https:\/\/sparksupport.com\/blog\/author\/spark_wp_admin\/"}]}},"_links":{"self":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/4547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/comments?post=4547"}],"version-history":[{"count":0,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/posts\/4547\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media\/4582"}],"wp:attachment":[{"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/media?parent=4547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/categories?post=4547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparksupport.com\/blog\/wp-json\/wp\/v2\/tags?post=4547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}