Отказ в соединении django gunicorn nginx

Я получаю следующую ошибку при запуске функции поиска на моем сайте (функция поиска делает api запрос к моему api серверу):

2022/08/31 21:01:56 [error] 726#726: *23 connect() failed (111: Connection refused) while connecting to upstream, client: 11.111.111.111, server: api.mydomain.com, request: "GET /dividends/IBM/3/5 HTTP/1.1", upstream: "http://127.0.0.1:8001/dividends/IBM/3/5", host: "api.example.com", referrer: "example.com/"

Supervisord gunicorn работает, mongodb работает, а nginx работает

У меня есть следующее /etc/nginx/sites-available/stocks_backend:

upstream stocks_backend {
    server 127.0.0.1:8001 fail_timeout=4s;
}

server {
    server_name api.example.com www.api.example.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /root/stocks_backend;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/etc/systemd/system/gunicorn.socket;
        proxy_ssl_server_name on;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem; # managed by C>
    ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem; # managed by>
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = api.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    listen [::]:80;
    server_name api.example.com www.api.example.com;
    return 404; # managed by Certbot

    access_log /root/stocks_backend/log/nginx-access.log;
    error_log /root/stocks_backend/log/nginx-error.log;
}

Я пробовал вещи с Django gunicorn nginx (111: Connection refused) при подключении к upstream но когда я удаляю http:// из proxy_pass в сокет на proxy_pass unix:/etc/systemd/system/gunicorn.socket; я получаю

nano /etc/nginx/sites-available/stocks_backend
root@my-droplet:~/stocks_backend# sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

гнездо грифонов

root@-droplet:~/stocks_backend# cat /etc/systemd/system/gunicorn.socket 
[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

Измените эту строку

proxy_pass http://unix:/etc/systemd/system/gunicorn.socket;

to

proxy_pass unix:/etc/systemd/system/gunicorn.socket;

По сути, удаляем http://, потому что это не то, как NGINX взаимодействует с Gunicorn.

Тогда, для другой проблемы, которую получает ОП, на данный момент у ОП недостаточно деталей.

Как ОП может получить более подробную информацию о проблеме? ОП может настроить журналы ошибок NGINX, как объяснено здесь. Тогда ОП сможет решить проблему с помощью информации из журналов.

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