Веб-приложение с использованием gunicorn на сервере nginx не работает

У меня было 3 приложения на сервере, работающем на Ubuntu 22.04. Первое приложение было Django, второе - Flask appp в одном месте и третье - FastAPI в другом месте. Когда я попытался добавить четвертое приложение (Flask), я не знаю, что я напутал, но теперь ни одно из них не работает. Все приложения отлично работают на моем компьютере. Когда я пытаюсь зайти на страницу через браузер на компьютере, он возвращает ERR_CONNECTION_REFUSED, а при доступе через телефон - ошибку 502 Bad Gateway nginx/1.18.0 (Ubuntu). Первая ошибка ничего не записывает в журнал nginx'а error.log, а вторая записывает.

Мой текущий конфиг сервера выглядит следующим образом:

server { 
    server_name host.es www.host.es; 
    location ~ /\.ht { deny all; }
    location ~/\.git { deny all; }
    location = /favicon.ico { access_log off; log_not_found off; }
    location /media { alias /var/www/host.es/myapp/media; }
    location /static { alias /var/www/host.es/myapp/static; }
    location / {
        include proxy_params;
        proxy_pass http://unix:/run/myapp.sock;
    }
    # The next configuration applies to the 3 location apps
    location /location1 {
        include porxy_params;
        proxy_set_header SCRIPT_NAME /location1;
        proxy_pass https://unix:/run/mysecondapp.sock;
    }
}
server {
    if ($host = www.host.es) {
        return 301 https://$host$request_uri;   
    }
    if ($host =host.es) {
        return 301 https://$host$request_uri;   
    }
    listen 80;
    server_name onemade.es www.onemade.es;
    return 404;
}

Мой сервис Django, который является основным приложением, выглядит следующим образом:

[Unit]
Description=Gunicorn for app
Requires=myapp.sock
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/myapp
ExecStart=/path/to/myapp/env/bin/gunicorn --workers 3 --preload --bind unix:/run/myapp.sock myapp.wsgi:application

[Install]
WantedBy=multi-user.target

Мои сервисы Flask, которые находятся в локациях, выглядят следующим образом:

[Unit]
Description=Gunicorn for app
Requires=mysecondapp.sock
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/mysecondapp
ExecStart=/path/to/mysecondapp/env/bin/gunicorn --workers 3 --preload --bind unix:/run/mysecondapp.sock web.wsgi:app

[Install]
WantedBy=multi-user.target

Все сокеты имеют одинаковую конфигурацию

[Unit]
Description=My apps socket

[Socket]
ListenStream=/run/myapp.sock
SocketUser=www-data

[Install]
WantedBy=sockets.target

И оба файла .socket и .service принадлежат пользователю root и хранятся в /etc/systemd/system/

Файлы .sock находятся в /run/ и принадлежат www-data.

При выполнении приведенных ниже команд для всех служб и сокетов они активны и не содержат никаких ошибок, и то же самое с nginx.

sudo systemctl start
sudo systemctl enable
sudo systemctl status

По команде sudo journalctl все работает нормально. При проверке /var/log/nginx/access.log выдается ошибка 502 при попытке GET перейти на страницу. При проверке /var/log/nginx/error.log выдается следующая строка:

connect() to unix:/bin/myapp.sock failed (2: No such file or directory) while connecting to upstream

В ошибке похоже, что nginx ищет файл .sock в каталоге /bin, а не в каталоге /run. Я не понимаю, почему это происходит и почему это изменилось при попытке добавить новое приложение. Как это исправить, чтобы все приложения работали нормально?

Вернуться на верх