Nginx активен, но я не вижу статических файлов
У меня есть проект django.
Settings.py:
STATIC_URL = 'static/'
STATIC_ROOT = 'static'
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
Я сделал collectstatic
и все работало нормально. Теперь папка static на моем сервере содержит все файлы.
Nginx:
У меня были проблемы с nginx, потому что я изменил имя в sites_available
и он начал выдавать ошибки, поэтому я переустановил его и теперь все в порядке, судя по логам:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
Active: active (running) since Wed 2024-05-01 14:47:13 UTC; 11min ago
Docs: man:nginx(8)
Process: 6843 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_proce>
Process: 6844 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (c>
Main PID: 6845 (nginx)
Tasks: 2 (limit: 1026)
Memory: 3.1M
CPU: 60ms
CGroup: /system.slice/nginx.service
├─6845 "nginx: master process /usr/sbin/nginx -g daemon on; master>
└─6846 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "">
May 01 14:47:13 23210 systemd[1]: nginx.service: Deactivated successfully.
May 01 14:47:13 23210 systemd[1]: Stopped A high performance web server and a r>
May 01 14:47:13 23210 systemd[1]: Starting A high performance web server and a >
May 01 14:47:13 23210 systemd[1]: Started A high performance web server and a r>
~
~
~
~
~
~
ESCOC
server and a reverse proxy server
/nginx.service; enabled; vendor preset: enabled)
2024-05-01 14:47:13 UTC; 11min ago
/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
inx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
ss /usr/sbin/nginx -g daemon on; master_process on;"
ss" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
service: Deactivated successfully.
d A high performance web server and a reverse proxy server.
ng A high performance web server and a reverse proxy server...
d A high performance web server and a reverse proxy server.
~
~
~
~
~
~
ESCOD
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
Active: active (running) since Wed 2024-05-01 14:47:13 UTC; 11min ago
Docs: man:nginx(8)
Process: 6843 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_proce>
Process: 6844 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (c>
Main PID: 6845 (nginx)
Tasks: 2 (limit: 1026)
Memory: 3.1M
CPU: 60ms
CGroup: /system.slice/nginx.service
├─6845 "nginx: master process /usr/sbin/nginx -g daemon on; master>
└─6846 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "">
May 01 14:47:13 23210 systemd[1]: nginx.service: Deactivated successfully.
May 01 14:47:13 23210 systemd[1]: Stopped A high performance web server and a r>
May 01 14:47:13 23210 systemd[1]: Starting A high performance web server and a >
May 01 14:47:13 23210 systemd[1]: Started A high performance web server and a r>
~
~
~
~
~
~
lines 1-18/18 (END)
[2]+ Stopped systemctl status nginx
^Z
Однако я не знаю, почему возникают ошибки.
Nginx config:
server {
listen 80;
server_name 77.777.77.77;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/portfolio-server;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
Django не имеет встроенного решения для обслуживания статических файлов, по крайней мере, не в производстве, когда DEBUG должен быть False.
Для этого нам придется использовать стороннее решение.
Установите WhiteNoise
pip install whitenoise
Модификация Settings.py
MIDDLEWARE = [
'django...............Middleware',
'django...............Middleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django...............Middleware',
'django...............Middleware',
]
Затем соберите статические файлы
python manage.py collectstatic