У меня есть Nginx и две виртуальные среды python с uwsgi. Эти среды предназначены для разработки и производства. Я хочу запустить производство на: 80 и dev: на 6544 портах
Вот конфиг, который у меня есть
server {
listen 80;
access_log off;
error_log /var/log/nginx/http.prod.error.log;
charset utf-8;
location / {
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;
}
}
server {
listen 6544;
access_log off;
error_log /var/log/nginx/http.dev.error.log;
charset utf-8;
location / {
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;
}
}
Когда я делаю %production%/bin/uwsgi --ini-paste-logged %production%/production.ini
он работает хорошо. Но когда я пытаюсь запустить версию разработчика %dev%/bin/uwsgi --ini-paste-logged %dev%/dev.ini
Я получил следующее в uwsgi.log:
*** Starting uWSGI 1.9.12 (64bit) on [Fri Jun 7 07:35:21 2013] ***
compiled with version: 4.4.3 on 07 June 2013 07:32:32
os: Linux-2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012
nodename: pt-apps2
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 24
current working directory: /home/dev
writing pidfile to ./pid_5000.pid
detected binary path: /home/dev/bin/uwsgi
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
unlink(): Operation not permitted [core/socket.c line 135]
bind(): Address already in use [core/socket.c line 185]
*** Starting uWSGI 1.9.12 (64bit) on [Fri Jun 7 07:38:24 2013] ***
compiled with version: 4.4.3 on 07 June 2013 07:32:32
os: Linux-2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012
nodename: pt-apps2
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 24
current working directory: /home/dev
writing pidfile to ./pid_5000.pid
detected binary path: /home/dev/bin/uwsgi
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
unlink(): Operation not permitted [core/socket.c line 135]
bind(): Address already in use [core/socket.c line 185]
dev.ini содержит следующие настройки:
[uwsgi]
socket = /tmp/uwsgi.sock
master = true
processes = 4
harakiri = 60
harakiri-verbose = true
limit-post = 65536
post-buffering = 8192
daemonize = ./uwsgi.log
pidfile = ./pid_5000.pid
listen = 256
max-requests = 1000
reload-on-as = 128
reload-on-rss = 96
no-orphans = true
log-slow = true
Я считаю, что что-то не так с конфигурацией, но понятия не имею, что не так. Еще один интересный момент: когда запущен производственный UWSGI, я могу получить доступ к: 6544, но я не вижу там dev-версию, только рабочую версию. Так что я думаю, что 80 и 6544 порта используются только для продакшена. Есть идеи, как я могу разделить две версии одного приложения по портам?
Спасибо
Вы пытаетесь использовать один и тот же сокет домена Unix как для разработки, так и для производства. Используйте для них разные розетки.