Настройка Django на CentOS 7 с использованием nginx и gunicorn, получая шлюз 502 - PullRequest
0 голосов
/ 24 января 2020

Настройка Django в этой новой среде и обнаружение того, что файл носка gunicorn выдает ошибку отказа в разрешении.

2020/01/24 09:52:23 [crit] 2954#0: *1 connect() to unix:/run/gunicorn.sock failed (13: Permission denied) while connecting to upstream, client: 197.237.29.12, server: 165.22.65.26, request: "GET /admin/ HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/admin/", host: "165.22.65.26"

вот настройки для файла gunicorn

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=sammy
Group=www-data
WorkingDirectory=/home/sammy/webapp/fortnox
ExecStart=/home/sammy/envs/fortnox/bin/gunicorn \
        --access-logfile - \
        --workers 3 \
        --bind unix:/run/gunicorn.sock \
        fortnox.wsgi:application

[Install]
WantedBy=multi-user.target

и сервер, встроенный в /etc/nginx/nginx.conf, поскольку ОС не поставляется с такой же настройкой, как Ubuntu, поэтому sites-enabled недоступен, и попытка добавить и связать его вызвала ошибку, поэтому я рекомендовал этот метод.

server {
    listen 80;
    server_name 165.22.65.26;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/sammy/webapp/fortnox;
    }
    location /media/ {
        root /home/sammy/webapp/fortnox;
    }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

они оба проверяют состояние, работают нормально, без проблем, так что у меня есть эта рекомендация о том, как разрешение файла sock от родителя должно быть

namei -l /run/gunicorn.sock

f: /run/gunicorn.sock
drwxr-xr-x root root /
drwxr-xr-x root root run
srw-rw-rw- root root gunicorn.sock

, а мое -

(fortnox) [sammy@extendmatch fortnox]$ namei -l /run/gunicorn.sock
f: /run/gunicorn.sock
dr-xr-xr-x root root /
drwxr-xr-x root root run
srw-rw-rw- root root gunicorn.sock

, поэтому в папке root отсутствуют разрешения на запись и выполнение, и я избегаю слишком много поворотов, которые дают сценариям слишком большую мощность для папки root, так как в случае возникновения уязвимости у меня будет слишком легко владеть системой.

Если вы знаете, как это исправить, я буду признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...