Почему NGINX не работает с проектом Django?
У меня есть проект Django, который работает с помощью настроенного веб-сервера Django. Я хочу использовать nginx и uWSGI. Я создал каталог в корневой папке Django под названием nginx/nginx.conf и nginx/default.conf для установки nginx. Ir успешно работает при http://localhost:8080 и показывает стартовую страницу nginx (сайт также запускается с uwsgi --http :8000 --module brand_site.wsgi). Но когда я пробую http://localhost:8080/blog/corgifume-posts/, он показывает 404 Not Found. В чем проблема? Почему мой сайт не работает с nginx?
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /opt/homebrew/etc/nginx/uwsgi_params; # where my uwsgi_param stores in local machine
server_tokens off;
include /opt/homebrew/etc/nginx/default.conf;
}
default.conf
server {
listen 8080; # what port to listen
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8000; # where to address requests
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
uwsgi.ini
[uwsgi]
wsgi-file = config/wsgi.py
strict = true
socket = :8000
protocol = http
master = true
no-orphans = true
die-on-term = true
lazy-apps = true
processes = 4
threads = 8
enable-threads = true
max-requests = 500
reload-on-rss = 1024
worker-reload-mercy = 60
harakiri = 60
harakiri-verbose = true
vacuum = true
post-buffering = 1048576
buffer-size = 65535
Путь к моему сайту: /Users/nnhufg/Desktop/CORGIFUME/brand_site
Ваша конфигурация nginx кажется в основном правильной, но, возможно, вам нужно проверить несколько вещей:
- Убедитесь, что ваше приложение Django правильно обрабатывает
/blog/corgifume-posts/URL. - Проверьте, включает ли настройка
ALLOWED_HOSTSв вашем Djangosettings.pyпараметрlocalhost. - Убедитесь, что ваш
uWSGIсервер работает и правильно обслуживает приложение Django. - Убедитесь, что процесс
uWSGIимеет правильные разрешения на доступ к файлам вашего проекта Django.
Дополнительно вы можете добавить блок location для статических файлов в вашу nginx конфигурацию:
location /static/ {
alias /path/to/your/static/files;
}
Замените /path/to/your/static/files на реальный путь к вашим статическим файлам.