{"title":"Så här använder du Django med uWSGI","version":"6.1","locale":"sv","docname":"howto/deployment/wsgi/uwsgi","url":"/sv/6.1/howto/deployment/wsgi/uwsgi/","canonical":"https://djangodocs.dev/sv/6.1/howto/deployment/wsgi/uwsgi/","summary":"uWSGI är en snabb, självläkande och utvecklar-/sysadminvänlig applikationscontainerserver kodad i ren C. Se även I uWSGI-dokumenten finns en ”tutorial” som täcker…","html":"<h1>Så här använder du Django med uWSGI<a class=\"heading-anchor\" href=\"#how-to-use-django-with-uwsgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><a class=\"reference external\" href=\"https://uwsgi-docs.readthedocs.io/\">uWSGI</a> är en snabb, självläkande och utvecklar-/sysadminvänlig applikationscontainerserver kodad i ren C.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">Se även</p>\n<p>I uWSGI-dokumenten finns en ”tutorial” som täcker Django, nginx och uWSGI (en möjlig distributionsuppsättning av många). Dokumentationen nedan fokuserar på hur man integrerar Django med uWSGI.</p>\n</aside>\n<section id=\"prerequisite-uwsgi\">\n<h2>Förkunskapskrav: uWSGI<a class=\"heading-anchor\" href=\"#prerequisite-uwsgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>I uWSGI:s wiki beskrivs flera ”installationsförfaranden”. Med hjälp av pip, Pythons pakethanterare, kan du installera alla uWSGI-versioner med ett enda kommando. Till exempel:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\"># </span>Install<span class=\"w\"> </span>current<span class=\"w\"> </span>stable<span class=\"w\"> </span>version.\n<span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>uwsgi\n</code></pre></div>\n<section id=\"uwsgi-model\">\n<h3>uWSGI-modell<a class=\"heading-anchor\" href=\"#uwsgi-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>uWSGI fungerar enligt en klient-servermodell. Din webbserver (t.ex. nginx, Apache) kommunicerar med en <code class=\"docutils literal notranslate\"><span class=\"pre\">django-uwsgi</span></code> ”worker”-process för att servera dynamiskt innehåll.</p>\n</section>\n<section id=\"configuring-and-starting-the-uwsgi-server-for-django\">\n<h3>Konfigurera och starta uWSGI-servern för Django<a class=\"heading-anchor\" href=\"#configuring-and-starting-the-uwsgi-server-for-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>uWSGI stöder flera sätt att konfigurera processen. Se uWSGI:s <a class=\"reference external\" href=\"https://uwsgi.readthedocs.io/en/latest/Configuration.html\">konfigurationsdokumentation</a>.</p>\n<p>Här är ett exempel på ett kommando för att starta en uWSGI-server:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>uwsgi<span class=\"w\"> </span>--chdir<span class=\"o\">=</span>/path/to/your/project<span class=\"w\"> </span><span class=\"se\">\\</span>\n<span class=\"w\">    </span>--module<span class=\"o\">=</span>mysite.wsgi:application<span class=\"w\"> </span><span class=\"se\">\\</span>\n<span class=\"w\">    </span>--env<span class=\"w\"> </span><span class=\"nv\">DJANGO_SETTINGS_MODULE</span><span class=\"o\">=</span>mysite.settings<span class=\"w\"> </span><span class=\"se\">\\</span>\n<span class=\"w\">    </span>--master<span class=\"w\"> </span>--pidfile<span class=\"o\">=</span>/tmp/project-master.pid<span class=\"w\"> </span><span class=\"se\">\\</span>\n<span class=\"w\">    </span>--socket<span class=\"o\">=</span><span class=\"m\">127</span>.0.0.1:49152<span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">     </span><span class=\"c1\"># can also be a file</span>\n<span class=\"w\">    </span>--processes<span class=\"o\">=</span><span class=\"m\">5</span><span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">                </span><span class=\"c1\"># number of worker processes</span>\n<span class=\"w\">    </span>--uid<span class=\"o\">=</span><span class=\"m\">1000</span><span class=\"w\"> </span>--gid<span class=\"o\">=</span><span class=\"m\">2000</span><span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">        </span><span class=\"c1\"># if root, uwsgi can drop privileges</span>\n<span class=\"w\">    </span>--harakiri<span class=\"o\">=</span><span class=\"m\">20</span><span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">                </span><span class=\"c1\"># respawn processes taking more than 20 seconds</span>\n<span class=\"w\">    </span>--max-requests<span class=\"o\">=</span><span class=\"m\">5000</span><span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">          </span><span class=\"c1\"># respawn processes after serving 5000 requests</span>\n<span class=\"w\">    </span>--vacuum<span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">                     </span><span class=\"c1\"># clear environment on exit</span>\n<span class=\"w\">    </span>--home<span class=\"o\">=</span>/path/to/virtual/env<span class=\"w\"> </span><span class=\"se\">\\ </span><span class=\"w\">  </span><span class=\"c1\"># optional path to a virtual environment</span>\n<span class=\"w\">    </span>--daemonize<span class=\"o\">=</span>/var/log/uwsgi/yourproject.log<span class=\"w\">      </span><span class=\"c1\"># background the process</span>\n</code></pre></div>\n<p>Detta förutsätter att du har ett projektpaket på högsta nivån som heter <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></code> och inom det en modul <code class=\"file docutils literal notranslate\"><span class=\"pre\">mysite/wsgi.py</span></code> som innehåller ett WSGI <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code>-objekt. Detta är den layout du kommer att ha om du körde <code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span> <span class=\"pre\">startproject</span> <span class=\"pre\">mysite</span></code> (med ditt eget projektnamn i stället för <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></code>) med en ny version av Django. Om den här filen inte finns måste du skapa den. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/deployment/wsgi/\"><span class=\"doc\">Så här distribuerar du med WSGI</span></a>-dokumentationen för standardinnehållet som du bör lägga till i den här filen och vad du kan lägga till i den.</p>\n<p>De Django-specifika alternativen här är:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">chdir</span></code>: Sökvägen till den katalog som måste finnas med på Pythons importväg, dvs. den katalog som innehåller paketet <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">modul</span></code>: WSGI-modulen som ska användas – förmodligen modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.wsgi</span></code> som <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></code></a> skapar.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">env</span></code>: Bör förmodligen innehålla minst <span class=\"target\" id=\"index-2\"></span><a class=\"reference internal\" href=\"/sv/6.1/topics/settings/#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">home</span></code>: Valfri sökväg till projektets virtuella miljö.</p></li>\n</ul>\n<p>Exempel på ini-konfigurationsfil:</p>\n<div class=\"code-block\" data-language=\"ini\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Ini</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Ini code\"><code><span class=\"k\">[uwsgi]</span>\n<span class=\"na\">chdir</span><span class=\"o\">=</span><span class=\"s\">/path/to/your/project</span>\n<span class=\"na\">module</span><span class=\"o\">=</span><span class=\"s\">mysite.wsgi:application</span>\n<span class=\"na\">master</span><span class=\"o\">=</span><span class=\"s\">True</span>\n<span class=\"na\">pidfile</span><span class=\"o\">=</span><span class=\"s\">/tmp/project-master.pid</span>\n<span class=\"na\">vacuum</span><span class=\"o\">=</span><span class=\"s\">True</span>\n<span class=\"na\">max-requests</span><span class=\"o\">=</span><span class=\"s\">5000</span>\n<span class=\"na\">daemonize</span><span class=\"o\">=</span><span class=\"s\">/var/log/uwsgi/yourproject.log</span>\n</code></pre></div>\n<p>Exempel på användning av konfigurationsfilen ini:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>uwsgi<span class=\"w\"> </span>--ini<span class=\"w\"> </span>uwsgi.ini\n</code></pre></div>\n<aside class=\"admonition-fixing-unicodeencodeerror-for-file-uploads admonition\">\n<p class=\"admonition-title\">Åtgärdar <code class=\"docutils literal notranslate\"><span class=\"pre\">UnicodeEncodeError</span></code> för filuppladdningar</p>\n<p>Om du får ett <code class=\"docutils literal notranslate\"><span class=\"pre\">UnicodeEncodeError</span></code> när du laddar upp filer med filnamn som innehåller icke-ASCII-tecken, se till att uWSGI är konfigurerad att acceptera icke-ASCII-filnamn genom att lägga till detta i din <code class=\"docutils literal notranslate\"><span class=\"pre\">uwsgi.ini</span></code>:</p>\n<div class=\"code-block\" data-language=\"ini\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Ini</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Ini code\"><code><span class=\"na\">env</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"s\">LANG=en_US.UTF-8</span>\n</code></pre></div>\n<p>Se avsnittet <a class=\"reference internal\" href=\"/sv/6.1/ref/unicode/#unicode-files\"><span class=\"std std-ref\">Filer</span></a> i Unicode-referensguiden för mer information.</p>\n</aside>\n<p>Se uWSGI-dokumenten om <a class=\"reference external\" href=\"https://uwsgi-docs.readthedocs.io/en/latest/Management.html\">hantering av uWSGI-processen</a> för information om hur du startar, stoppar och laddar om uWSGI-arbetarna.</p>\n</section>\n</section>","rootId":"how-to-use-django-with-uwsgi","toc":[{"title":"Förkunskapskrav: uWSGI","anchor":"prerequisite-uwsgi","children":[{"title":"uWSGI-modell","anchor":"uwsgi-model","children":[]},{"title":"Konfigurera och starta uWSGI-servern för Django","anchor":"configuring-and-starting-the-uwsgi-server-for-django","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/6.1/howto/"},{"docname":"howto/deployment/index","title":"Så här distribuerar du Django","url":"/sv/6.1/howto/deployment/"},{"docname":"howto/deployment/wsgi/index","title":"Så här distribuerar du med WSGI","url":"/sv/6.1/howto/deployment/wsgi/"}],"prev":{"docname":"howto/deployment/wsgi/gunicorn","title":"Så här använder du Django med Gunicorn","url":"/sv/6.1/howto/deployment/wsgi/gunicorn/"},"next":{"docname":"howto/deployment/wsgi/modwsgi","title":"Så här använder du Django med Apache och mod_wsgi","url":"/sv/6.1/howto/deployment/wsgi/modwsgi/"},"formats":{"html":"/sv/6.1/howto/deployment/wsgi/uwsgi/","markdown":"/sv/6.1/howto/deployment/wsgi/uwsgi.md","json":"/sv/6.1/howto/deployment/wsgi/uwsgi.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/howto/deployment/wsgi/uwsgi.txt","official":"https://docs.djangoproject.com/sv/6.1/howto/deployment/wsgi/uwsgi/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}