Я смущен. Где я ошибаюсь?
Расположение файлов проекта:
/home/username/www
/etc/uwsgi/sites/mysite.com
[uwsgi]
project = www
base = /home/username
uid = www-data
gid = www-data
chdir = %(base)/%(project)
home = %(base)/.virtualenvs/%(project)
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 664
vacuum = true
/etc/init/uwsgi.conf:
description "uWSGI application server in Emperor mode"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
/etc/nginx/sites-available/mysite.com:
server {
listen 80;
error_log /var/log/nginx/mysite_error.log warn;
server_name www.mysite.com mysite.com;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/www;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/home/username/www/www.sock;
}
location /media {
alias /home/username/www/media;
}
}
У меня 502 Bad Gateway! Как я могу решить эту проблему?
Я обнаружил проблему. Устанавливаю uwsgi
дважды, по pip
и по apt-get
слишком.
Так uwsgi
указывает на неправильную установку и не имеет доступа для создания файла сокета.
В конфигурации uwsgi вы указываете сокет:
socket = 127.0.0.1:8000
В конфигурации nginx у вас есть:
uwsgi_pass unix:/home/username/www/www.sock;
Итак, у вас нет правильной конфигурации сокета.
Вы должны либо перейти на сокет TCP, либо на сокет Unix. Сокет Unix является предпочтительным, поэтому вы должны иметь его в своем uwsgi
конфигурация:
socket = /home/username/www/www.sock;
Или даже лучше, поместите файл сокета в /var/run/uwsgi.sock
.