Ubuntu + Apache (mod_wsgi) + Django - HTTPSConnectionPool Ошибка нового подключения - [Ошибка № 111] Отказано в подключении

Окружающая среда:

Ubuntu 24.04, Apache 2.4 (+ libapache2-mod-wsgi-py3 5.0.0-1build2), Python 3.12 (+ запросы 2.32.3), Django Admin 5.1.6

Ошибка:

Я подключил проект Django через Apache (mod-wsgi), и он работает нормально (по адресу 'https mysub.mydom.com/myapp'), за исключением requests.post в кодах python, которые не работают с:

HTTPSConnectionPool(host='mysub.mydom.com', port=443): Max retries exceeded with url: /myapp/api/v1/endpoint (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7191eb589e50>: Failed to establish a new connection: [Errno 111] Connection refused'))

"https mysub.mydom.com/myapp/api/v1/endpoint" работает (200) из браузера. "Apache Full" разрешен из ufw.

mysub.mydom.com.conf (для сайтов Apache-включен вместе с mysub.mydom.com-le-ssl.conf, сгенерированным certbot):

Define wsgi_daemon "mydjango_proc"

<VirtualHost *:80>
    ServerName mysub.mydom.com
    ServerAdmin webmaster@mydom.com
    DocumentRoot /home/myuser/my_django/my_project
    
    <IfModule mpm_itk_module>
            AssignUserId myuser www-data
    </IfModule>
    
    ErrorLog /home/myuser/my_django/log/my_project.error.log
    CustomLog /home/myuser/my_django/log/my_project.access.log common

    Alias /static /home/myuser/my_django/my_project/static
    <Directory /home/myuser/my_django/my_project/static>
            Require all granted
    </Directory>

    <Directory /home/myuser/my_django/my_project/my_project>
        <Files wsgi.py>
              Require all granted
        </Files>
    </Directory>
    
    <Directory /home/myuser/my_django/my_project>
          Require all granted
    </Directory>
    
    <IfDefine !wsgi_init>
            WSGIApplicationGroup %{GLOBAL}
            WSGIProcessGroup %{GLOBAL}
            WSGIDaemonProcess ${wsgi_daemon} python-home=/home/myuser/my_django/sklp_env python-path=/home/myuser/my_django/my_project user=myuser socket-user=myuser
            WSGIProcessGroup ${wsgi_daemon}
            WSGIScriptAlias / /home/myuser/my_django/my_project/my_project/wsgi.py
            Define wsgi_init 1
    </IfDefine>
</VirtualHost>

Расположение + структура Django:

home
|-- myuser
    |-- my_django (group: www-data)
        |-- sklp_env
        `-- my_project (group: www-data)
           |-- myapp
           |-- my_project
           |-- static
           |-- db.sqlite3 (group: www-data / permission: 664)
           `-- manage.py

Некоторые настройки проекта (/home/myuser/my_django/my_project/my_project/settings.py):

...
ALLOWED_HOSTS = ['xxx.xxx.xxx.xxx','mysub.mydom.com']

SECURE_HSTS_SECONDS = 60
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
...

Мне просто интересно, в чем может быть проблема, когда URL-адреса (без кодов, содержащих requests) нормально работают в браузере с https, но URL-адреса с requests сталкиваются с отказом.

Спасибо, что дочитали до этого места. И еще много чего за то, что подумали об этом.

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