Nginx + uwsgi + virtualenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБ-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ django рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ

рдХрд╛рд░реНрдп: рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ django рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдЕрдЬрдЧрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ django рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВред

Ubuntu 12.04 рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВред

рдЯреНрд░реЗрдирд┐рдВрдЧ


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЬрдЧрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдбрд╛рд▓реЗрдВ рдЬреЛ рд╣рдореЗрдВ рдмреНрдпрд╛рдЬ рджреЗрддреЗ рд╣реИрдВред

рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ:
sudo apt-get install zlib1g zlib1g-dev zlibc libssl-dev 

рдЕрдЬрдЧрд░ рд░рдЦреЛ, рдореИрдВрдиреЗ 2.7.4 рдФрд░ 3.3.1 рд╕реЗрдЯ рдХрд┐рдпрд╛
 wget http://python.org/ftp/python/2.7.4/Python-2.7.4.tar.bz2 tar -xf Python-2.7.4.tar.bz2 cd Python-2.7.4 ./configure --prefix=/opt/python2.7/ --enable-unicode=ucs4 make && make install 

 wget http://python.org/ftp/python/3.3.1/Python-3.3.1.tar.bz2 tar -xf Python-3.3.1.tar.bz2 cd Python-3.3.1 ./configure --prefix=/opt/python3.3/ make && make install 

рдЖрдЗрдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВред

Nginx рд╕реНрдерд╛рдкрдирд╛


 apt-get install nginx-full 

рдХреНрдпреЛрдВ рдирдЧреНрдиреЗрдХреНрд╕-рдкреВрд░реНрдг рд╣реИ рдФрд░ рдирдЧрдиреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИ? рдирдЧреНрдиреЗрдХреНрд╕-рдлреБрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╡реНрд╕рдЧреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЖрдкрдХреЛ nginx рдХреЛ рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдХрд╣рд╛рдВ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИред
/Etc/nginx/nginx.conf рдЦреЛрд▓реЗрдВред
include /etc/nginx/sites-enabled/*; рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж include /etc/nginx/sites-enabled/*; рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ include /home/hosting/.nginx/*.conf;
рдЕрдм рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдирдЧреНрдиреЗрдХреНрд╕-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрджрд╛рд╣рд░рдг:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 server { server_name project1.com; access_log /var/log/project1.access.log; error_log /var/log/project1.error.log; location / { uwsgi_pass unix:/tmp/project1.sock; include /etc/nginx/uwsgi_params; } location /static/ { alias /home/hosting/project1/static/; } location /media/ { alias /home/hosting/project1/media/; } } 

рдЖрдкрдХреЛ /home/hosting/.nginx рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ www-data рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ nginx рдХреЗ рддрд╣рдд рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 chown -R www-data:www-data /home/hosting/.nginx/ 

рд╣рдо nginx рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
 service nginx start 

Virtualenvwrapper рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


virtualenvwrapper - virtualenv рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдЖрд╕рд╛рди рдЖрд╡рд░рдгред
рд╣рдо рдкрд╛рдЗрдк рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЕрдЧрд░ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ:
 sudo apt-get install python-pip 

рд╣рдордиреЗ virtualenvwrapper рд░рдЦрд╛:
 pip install virtualenvwrapper 

~ / .Bashrc рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 export WORKON_HOME=/home/hosting/.virtualenvs/ source /usr/local/bin/virtualenvwrapper.sh 

рдХрдВрд╕реЛрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ .bashrc рдЬреВрддреЗред рдЕрдм рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ mkvirtualenv рдХрдорд╛рдВрдб рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ:

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдБред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ 1 рдЕрдЬрдЧрд░ 2.7 рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ 2 3.3 рдкрд░ рдЪрд▓реЗрдЧрд╛ред
 mkvirtualenv project1 -p /opt/python2.7/bin/python deactivate mkvirtualenv project2 -p /opt/python3.3/bin/python3 deactivate 

рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд░рдЦрддреЗ рд╣реИрдВред (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ)
 workon project1 cd /home/hosting/project1 pip install -r requirements.txt workon project2 cd /home/hosting/project2 pip install -r requirements.txt 

Uwsgi рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ред


рд╣рдо рдЗрд╕реЗ рд╕рдореНрд░рд╛рдЯ рдореЛрдб (- рдЯреЗрдореНрдкреЛрд░рд░) рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдпрд╣ рдореЛрдб рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд▓реНрдЯреА-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рдореНрд░рд╛рдЯ рдореЛрдб рдореЗрдВ, uwsgi рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛, рдЬреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╣рдо рдПрдХ рдмрд╛рд░ uwsgi рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╡рд╣ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, uwsgi рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд░реНрдЪреБрд╡реЗ рд╕реЗ uwsgi рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЬрдЧрд░ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг, рдЕрдЬрдЧрд░ 2.7 рдХреЗ рддрд╣рдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЬрдЧрд░ 3.3 рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде django рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реЗрд╡рд╛ рдирд╣реАрдВ рджреЗ рдкрд╛рдПрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдЬрдЧрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореНрд░рд╛рдЯ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╣рдо рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░реЗрдВрдЧреЗред

рд╣рдо рд╕рдореНрд░рд╛рдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред
 mkvirtualenv python27 -p /opt/python2.7/bin/python deactivate mkvirtualenv python33 -p /opt/python3.3/bin/python3 deactivate 

рдЕрдм рдЖрдкрдХреЛ рд╣рд░ рд╡рд░реНрд╕реЗрдирд╡ рдореЗрдВ uwsgi рдбрд╛рд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 workon python27 pip install uwsgi workon python33 pip install uwsgi 

рдкреНрд░рддреНрдпреЗрдХ uwsgi рд╕рдореНрд░рд╛рдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБред
 mkdir /home/hosting/.uwsgi/python27 mkdir /home/hosting/.uwsgi/python33 

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП uwsgi-configs рдмрдирд╛рдПрдВред
/home/hosting/.uwsgi/python27/project1.ini
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 [uwsgi] protocol = wsgi master = true processes = 1 #    socket = /tmp/project1.sock #   pythonpath   , . uwsgi         virtualenv pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg pythonpath = /home/hosting/.virtualenvs/project1/lib/python27.zip pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7 pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/plat-linux2 pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/lib-tk pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/lib-old pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/lib-dynload pythonpath = /home/hosting/.virtualenvs/project1/lib/python2.7/site-packages # -  virtualenv     ,      pythonpath = /opt/python2.7/lib/python2.7 chdir = /home/hosting/project1 virtualenv = /home/hosting/.virtualenvs/project1 env = DJANGO_SETTINGS_MODULE=settings module = django.core.handlers.wsgi:WSGIHandler() no-site = true vhost = true chmod-socket = 666 

рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдорд╛рди рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо .ini рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ uwsgi рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдирд╣реАрдВ рдЙрдард╛рдПрдЧрд╛ред

рдЕрдм рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ uwsgi рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдЙрдмрдВрдЯреНрдЯ рдореЗрдВ рд╣реИред
рдЖрдЗрдП рджреЛ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
/etc/init/uwsgi27.conf
 description "uWSGI Emperor (python 2.7)" start on runlevel [2345] stop on runlevel [06] exec /home/hosting/.virtualenvs/python27/bin/uwsgi --master --emperor /home/hosting/.uwsgi/python27 --logto /var/log/uwsgi27.emperor.log 

/etc/init/uwsgi33.conf
 description "uWSGI Emperor (python 3.3)" start on runlevel [2345] stop on runlevel [06] exec /home/hosting/.virtualenvs/python33/bin/uwsgi --master --emperor /home/hosting/.uwsgi/python33/ --logto /var/log/uwsgi33.emperor.log 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛


рдЬрдбрд╝ рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ "рд╢рд╛рд╣реА" рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓рд╛рдПрдВрдЧреЗ, рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдзреАрди рд╣реЛрдВрдЧреАред

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВред
 adduser --no-create-home --disabled-login --disabled-password www-project1 adduser --no-create-home --disabled-login --disabled-password www-project2 

Uwsgi ini-config рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдпреВрдЖрдИрдбреА рдЬреАрдЖрдИрдбреА тАЛтАЛрдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ
 uid = www-project1 #  gid = www-project1 #  

рд╕рд╣реА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 chown -R www-data:www-data /home/hosting/.nginx chmod -R 770 /home/hosting/.nginx chown -R root:root /home/hosting/.uwsgi chmod -R 770 /home/hosting/.uwsgi chown -R root:root /home/hosting/.virtualenvs/python27 /home/hosting/.virtualenvs/python33 chmod -R 775 /home/hosting/.virtualenvs chown -R www-project1:www-project1 /home/hosting/project1 /home/hosting/.virtualenvs/project1 chown -R www-project2:www-project2 /home/hosting/project2 /home/hosting/.virtualenvs/project2 

рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ uwsgi
 service uwsgi27 start service uwsgi33 start 

рдЬрд╛рдВрдЪ - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирдЧреНрдиреЗрдХреНрд╕ рд▓реЙрдЧреНрд╕ рдФрд░ uwsgi рд╕рдореНрд░рд╛рдЯ рдХреЗ рд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВред
рдПрдХ рд╕рдВрдХреЗрдд рдЬрд┐рд╕реЗ uwsgi рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x135e280 pid: 21737 (default app) рд▓рд╛рдЗрди WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x135e280 pid: 21737 (default app) рдХреА рдореМрдЬреВрджрдЧреА, рдЬреЛ рдХрд┐ uwsgi рд▓реЙрдЧ рдореЗрдВ WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x135e280 pid: 21737 (default app) ред
рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .nginx рдФрд░ .uwsgi рдореЗрдВ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ nginx рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред uwsgi рдЦреБрдж рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реЗрдЧреАред

ssylochki


projects.unbit.it/uwsgi/wiki/MultiPython
projects.unbit.it/uwsgi/wiki/DynamicVirtualenv
auphonic.com/blog/2011/06/18/django-deployment-nginx-uwsgi-virtualenv-and-fabric
eshlox.net/en/2012/09/11/nginx-uwsgi-virtualenv-and-django-ubuntu-1204
uwsgi-docs.readthedocs.org/en/latest/Emperor.html

рдкреБрдирд╢реНрдЪ


рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ; рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВ рдПрдХ uwsgi рд╕рдореНрд░рд╛рдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдПрдХ uwsgi-plugin рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

Source: https://habr.com/ru/post/In179831/


All Articles