Как nginx может обслуживать stati c файлы в подкаталоге и передавать остальное в uwsgi? - PullRequest
0 голосов
/ 16 января 2020

У меня есть каталог example.com/data/, который обслуживается только stati c content на root (то есть example.com/data/ обслуживает stati c webpage, но example.com/data/file обслуживается сценарием). Я использую uwsgi для обслуживания части stati c, и мне удалось заставить свой сценарий обслуживать контент самостоятельно, но я не могу понять, какие правила мне нужны, чтобы получить такое поведение, потому что я получаю " 500 Internal Server Error. "

Моя текущая (нерабочая) конфигурация выглядит следующим образом:

location = /data/ {
  alias /srv/data/index.html;
}
location /data {
  gzip off;
  include uwsgi_params;
  uwsgi_modifier1 9;
  uwsgi_pass unix:/run/uwsgi/data.sock;
}

Я пробовал несколько конфигураций с try_files, но не могу сделать это работает. Нужно ли ссылаться на один из каталогов здесь по-другому или использовать try_files и несколько именованных маршрутов?

РЕДАКТИРОВАТЬ: Благодаря @Richard Smith, эта конфигурация работает:

location = /data/ {
  root /srv/data/;
  try_files /index.html =404;
}
location = /data {
  gzip off;
  include uwsgi_params;
  uwsgi_modifier1 9;
  uwsgi_pass unix:/run/uwsgi/data.sock;
}
...