Настройка 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, так как в случае возникновения уязвимости у меня будет слишком легко владеть системой.
Если вы знаете, как это исправить, я буду признателен.