<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.welard.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.124.10.12&amp;*</id>
	<title>Wiki Welard - Внесок користувача [uk]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.welard.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.124.10.12&amp;*"/>
	<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%BD%D0%B5%D1%81%D0%BE%D0%BA/91.124.10.12"/>
	<updated>2026-10-22T12:37:29Z</updated>
	<subtitle>Внесок користувача</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Nginx_Django&amp;diff=1862</id>
		<title>Nginx Django</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Nginx_Django&amp;diff=1862"/>
		<updated>2009-10-12T12:42:58Z</updated>

		<summary type="html">&lt;p&gt;91.124.10.12: /* Налаштування зв'язки Django та nginx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Налаштування зв'язки Django та nginx ==&lt;br /&gt;
Операційна система [[Debian]] або [[CentOS]].&lt;br /&gt;
----&lt;br /&gt;
1. Встановлюємо все необхідне:&lt;br /&gt;
 apt-get install python [[nginx]] django flux python-mysqldb python-imaging&lt;br /&gt;
для CentOS потрібно встановити [[MySQL-python]] без '''egg'''!!!&lt;br /&gt;
&lt;br /&gt;
2. Настроюємо nginx (/etc/nginx). Ставорюємо файл /etc/nginx/django_fcgi_params для передачі параметрів у Django&lt;br /&gt;
 fastcgi_pass_header Authorization;                   &lt;br /&gt;
 fastcgi_intercept_errors off;                        &lt;br /&gt;
 fastcgi_param PATH_INFO         $fastcgi_script_name;&lt;br /&gt;
 fastcgi_param REQUEST_METHOD    $request_method;     &lt;br /&gt;
 fastcgi_param QUERY_STRING      $query_string;       &lt;br /&gt;
 fastcgi_param CONTENT_TYPE      $content_type;       &lt;br /&gt;
 fastcgi_param CONTENT_LENGTH    $content_length;     &lt;br /&gt;
 fastcgi_param SERVER_PORT       $server_port;        &lt;br /&gt;
 fastcgi_param SERVER_PROTOCOL   $server_protocol;    &lt;br /&gt;
 fastcgi_param SERVER_NAME       $server_name;        &lt;br /&gt;
 fastcgi_param REQUEST_URI       $request_uri;        &lt;br /&gt;
 fastcgi_param DOCUMENT_URI      $document_uri;       &lt;br /&gt;
 fastcgi_param DOCUMENT_ROOT     $document_root;  &lt;br /&gt;
 fastcgi_param SERVER_ADDR       $server_addr;    &lt;br /&gt;
 fastcgi_param REMOTE_USER       $remote_user;        &lt;br /&gt;
 fastcgi_param REMOTE_ADDR       $remote_addr;        &lt;br /&gt;
 fastcgi_param REMOTE_PORT       $remote_port;        &lt;br /&gt;
 fastcgi_param SERVER_SOFTWARE   &amp;quot;nginx&amp;quot;;             &lt;br /&gt;
 fastcgi_param GATEWAY_INTERFACE &amp;quot;CGI/1.1&amp;quot;;&lt;br /&gt;
3. У файл /etc/nginx/nginx.conf добавляємо у секцію http {}&lt;br /&gt;
  log_format main      '$remote_addr - $remote_user [$time_local] '&lt;br /&gt;
                       '&amp;quot;$request&amp;quot; $status $bytes_sent $body_bytes_sent '&lt;br /&gt;
                       '&amp;quot;$http_referer&amp;quot; &amp;quot;$http_user_agent&amp;quot;'&lt;br /&gt;
                       '&amp;quot;$gzip_ratio&amp;quot; &amp;quot;$uid_set&amp;quot; &amp;quot;$uid_got&amp;quot;';&lt;br /&gt;
4. Добавляємо в каталог /etc/nginx/sites-available свої налаштування (файл django-site):&lt;br /&gt;
 # Django project&lt;br /&gt;
 server {&lt;br /&gt;
   listen  80;&lt;br /&gt;
   server_name '''energy-service.com''';&lt;br /&gt;
   error_log  /var/www/energy-service/error_log  info;&lt;br /&gt;
   location / {&lt;br /&gt;
       '''fastcgi_pass unix:/var/www/energy-service/server.sock'''; # зв'язок з демоном django через сокет&lt;br /&gt;
       # fastcgi_pass 127.0.0.1:8000; # можна і через порт&lt;br /&gt;
       include   django_fcgi_params; &lt;br /&gt;
       access_log  /var/www/'''energy-service'''/logs/django.log  main;&lt;br /&gt;
   }&lt;br /&gt;
   #  location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|bmp|js)$ {&lt;br /&gt;
   #      root   /var/www/'''energy-service'''/site;&lt;br /&gt;
   #      access_log   off;&lt;br /&gt;
   #      expires      30d;&lt;br /&gt;
   #  }&lt;br /&gt;
   location /sm  {&lt;br /&gt;
       root /var/www/'''energy-service'''/site;&lt;br /&gt;
       access_log   off;&lt;br /&gt;
   }&lt;br /&gt;
   location /media  {&lt;br /&gt;
       root '''/var/lib/python-support/python2.5/django/contrib/admin''';&lt;br /&gt;
       access_log   off;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
5. Робимо символічну посилку файла django-site в папку /etc/nginx/sites-available/sites-enabled&lt;br /&gt;
&lt;br /&gt;
6. Потрібно створити запускний файл для створення [[Daemon|демона]] django&lt;br /&gt;
&lt;br /&gt;
Обов'язково потрібно змінити користувача на відповідного (www-data або www в залежності від дистрибутиву)&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 kill `cat /var/www/'''energy-service'''/server.pid`&lt;br /&gt;
 su '''www-data''' -c &amp;quot;./manage.py runfcgi  method=threaded  socket=/var/www/'''energy-service'''/server.sock pidfile=/var/www/'''energy-service'''/server.pid&amp;quot;&lt;br /&gt;
&lt;br /&gt;
7. Рестартуємо nginx: &lt;br /&gt;
 invoke-rc.d nginx restart&lt;br /&gt;
&lt;br /&gt;
Можна вдосконалити запускний файл демона:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 DIR=&amp;quot;/var/www/'''energy-service'''&amp;quot;&lt;br /&gt;
 APPLICATION=''''es''''&lt;br /&gt;
 PID=&amp;quot;$DIR/server.pid&amp;quot;&lt;br /&gt;
 SOCKET=&amp;quot;$DIR/server.sock&amp;quot;&lt;br /&gt;
 ACTION=$1&lt;br /&gt;
 NEED_START=&amp;quot;yes&amp;quot;&lt;br /&gt;
 PROCESS=&amp;quot;&amp;quot;&lt;br /&gt;
 if [ -f $PID ]; then&lt;br /&gt;
     pid=$(cat $PID)&lt;br /&gt;
     if [ -n &amp;quot;$pid&amp;quot; ]; then&lt;br /&gt;
         PROCESS=$(ps -p $pid --no-headers)&lt;br /&gt;
         if [ -n &amp;quot;$PROCESS&amp;quot; ]; then&lt;br /&gt;
             echo &amp;quot;Found active daemon with pid $pid&amp;quot;&lt;br /&gt;
             if [ &amp;quot;$ACTION&amp;quot; == &amp;quot;restart&amp;quot; -o &amp;quot;$ACTION&amp;quot; == &amp;quot;stop&amp;quot; ]; then&lt;br /&gt;
                 echo &amp;quot;Killing $pid&amp;quot;&lt;br /&gt;
                 kill $pid&lt;br /&gt;
             else&lt;br /&gt;
                 NEED_START=&amp;quot;no&amp;quot;&lt;br /&gt;
             fi&lt;br /&gt;
         fi&lt;br /&gt;
     fi&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -z &amp;quot;$PROCESS&amp;quot; ]; then&lt;br /&gt;
     echo &amp;quot;No active daemon&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;$ACTION&amp;quot; == &amp;quot;stop&amp;quot; ]; then&lt;br /&gt;
     NEED_START=&amp;quot;no&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 if [ &amp;quot;$NEED_START&amp;quot; == &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
     echo &amp;quot;Starting django daemon...&amp;quot;&lt;br /&gt;
     su www-data -c &amp;quot;/usr/bin/env python $DIR/$APPLICATION/manage.py runfcgi method=threaded socket=$SOCKET pidfile=$PID umask=000&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
'''Для перестраховки можна викликати скрітп кожні 5 хв за допомогою крона:'''&lt;br /&gt;
  */5   *   *   *   *   /var/www/fcgi_do.sh start&lt;/div&gt;</summary>
		<author><name>91.124.10.12</name></author>
		
	</entry>
</feed>