Проект на Django не загружается с Ubuntu VPS, после настроек gunicorn, supervisor и nginx
Всем привет! Столкнулся с проблемой, произвел все настройки на сервере, проверил работу gunicorn, запустил проект напрямую командой gunicorn Superman.wsgi:application --bind 0.0.0.0:8001, сайт запустился, но без static файлов. Далее установил supervisor, так же произвел отдельную настройку под него и настроил nginx, при проверке supervisor sudo supervisorctl status Superman сервер ответил, что он работает, при проверке nginx sudo nginx -t сервер так же отвечает положительно successful, но когда я забиваю IP своего сайта в строку поиска браузера сайт не прогружается, ошибка - Сайт 91.228.152.32 не позволяет установить соединение, в логах nginx пусто. В чем может быть проблема, возможно я неправильно настраиваю proxy_pass? Настройки прилагаю ниже, ПРОШУ ПОМОЧЬ В РЕШЕНИИ ПРОБЛЕМЫ, сутки ищу решение и ничего((
Настройка Gunicorn
NAME="Superman-test"
DJANGODIR=/webapps/Superman-test/Superman
SOCKFILE=/webapps/Superman-test/run/gunicorn.sock
GROUP=www-data
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=Superman.settings
DJANGO_WSGI_MODULE=Superman.wsgi
echo "Starting $NAME as `whoami`"
cd $DJANGODIR
source ../bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-
Настройка Supervisor
[program:Superman]
command = sh /webapps/Superman-test/bin/gunicorn_start
user = root
stdout_logfile = /webapps/Superman-test/logs/gunicorn_supervisor.log
redirect_stderr = true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8
Настройка Nginx
upstream Superman-test_server {
server unix:/webapps/Superman-test/run/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name 91.228.152.32;
client_max_body_size 4G;
access_log /webapps/Superman-test/logs/nginx-access.log;
error_log /webapps/Superman-test/logs/nginx-error.log;
location /static/ {
alias /webapps/Superman-test/Superman/static/;
}
location /media/ {
alias /webapps/Superman-test/Superman/static/app/image/;
}
location / {
if(!-f $request_filename) {
proxy_pass http://Superman-test_server;
break;
}
}
# Error pages
error_page 500 502 503 504 /500.html;
location = / 500.html {
root /webapps/Superman-test/static/;
}
}
Ответы (1 шт):
nginx -t -- протестировать конфиг nginx. это не про "запущен".
ps -ef -- посмотреть, какие процессы запущены.
sudo lsof -Pi | grep LISTEN -- посмотреть, какие процессы на каком ip и порту слушают.
Так на любой запрос сначала смотрится, есть ли файл в /app/static, если нет -- идет на бакенд:
server {
...
root /app/static; #static files
location / {
try_files $uri @backend;
}
location @backend {
proxy_pass http://127.0.0.1:1979;
...
}
}
Отдельные location не описываются.