Closed Feodorov closed 10 years ago
Нашел полезную статью: http://habrahabr.ru/post/61918/ Но по ней не получилось. Дошел до последнего пункта, и после запуска wcgi в питоне постоянно выпадала ошибка ValueError. Если ты таки пойдешь этим путем, то для wsgi в питоне 3 тебе понадобится вот такой пакет: https://github.com/Pyha/flup-py3.3 (ты столкнешься с его отсутствием когда будешь запускать manage.py)
Я пошел другим путем. 1) Установил nginx. 2) В папке с конфигами скопировал mime.types.default в mime.types 3) Конфиг nginx.conf:
1 user root wheel;
2 worker_processes 1;
3
4 #error_log logs/error.log;
5 #error_log logs/error.log notice;
6 #error_log logs/error.log info;
7
8 #pid logs/nginx.pid;
9
10 events {
11 worker_connections 1024;
12 }
13
14 http {
15 include mime.types;
16 default_type application/octet-stream;
17
18 #access_log logs/access.log main;
19
20 sendfile on;
21 #tcp_nopush on;
22
23 #keepalive_timeout 0;
24 keepalive_timeout 65;
25
26 #gzip on;
27
28 server {
29 listen 80;
30 server_name localhost;
31 charset utf-8;
32 root /opt/ig-pipeline/ig-frontend/igcad;
33 #access_log logs/cool.access.log main;
34
35 client_max_body_size 300m;
36
37 location ~* ^.+\.(bmp|jpg|jpeg|pjpeg|gif|ico|png|css|doc|txt|js|docx|rtf|ppt|pdf|swf|zip|rar|gz)$ {
38 expires 10d;
39 log_not_found on;
40 try_files $uri
41 /opt/ig-pipeline/ig-frontend/igcad/$uri;
42 }
43 location / {
44 proxy_pass_header Server;
45 proxy_set_header Host $http_host;
46 proxy_redirect off;
47 proxy_set_header X-Real-IP $remote_addr;
48 proxy_set_header X-Scheme $scheme;
49 proxy_connect_timeout 10;
50 proxy_read_timeout 10;
51 proxy_pass http://localhost:8000/;
52 }
53 #error_page 404 /404.html;
54
55 # redirect server error pages to the static page /50x.html
56 #
57 error_page 500 502 503 504 /50x.html;
58 location = /50x.html {
59 root html;
60 }
61 }
62 }
В конфиге есть тонкости: 1) В строке 1 нужно прописать пользователя-владельца статических файлов в ig-frontend/igcad/static. wheel - это группа. 2) Первый блок location - это выдача статических файлов самим nginx, минуя питоновскую часть 3) Второй блок location - это прокси на wsgi сервер питона.
Если правишь конфиг, сервер можно заставить перечитать его командой nginx -s reload.
Отлично. Теперь нам осталось запустить wsgi сервер на порту 8000, куда будут уходить запросы nginx. Есть два способа: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/gunicorn/ Так как wsgi интерфейса у нас нет (или я не нашел), то я пошел по второму способу. Он deprecated, но на первое время сойдет. 1) pip install gunicorn 2) cd /opt/ig-pipeline/ig-frontend/igcad 3) /opt/local/Library/Frameworks/Python.framework/Versions/3.3/bin/gunicorn_django --workers=2 В последнем пункте тебе нужен бинарник gunicorn_django. Мне пришлось прописать абсолютный путь.
В итоге: все завелось, но, видимо, не самым оптимальным/правильным способом. Зато быстро :)
Необходимо настроить работу nginx с ig-frontend, затем написать инструкцию по установке на сервер. Паша затем сможет установить все локально.