У своїй програмі я хочу, щоб місцеположення "/" повернуло статичний файл index.html, я хочу, щоб "/ static" обслуговувало статичні файли з папки, і я хочу, щоб усі інші запити поверталися 404 НЕ ЗНАЙДЕНО. Згодом я переспрямую всі інші запити на сервер WSGI.
Наразі це моя конфігурація:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
Статична папка працює чудово, але "/" повертається 404 НЕ ЗНАЙДЕНО. Я також спробував:
alias /home/tomas/projects/streamcore/static/index_debug.html;
У блоці розташування, але це повертає 500 ВНУТРІШНЬОЇ ПОМИЛКИ СЕРВЕРА Схоже alias
, не подобаються окремі файли. Додатково я спробував:
try_files static/index_debug.html;
Але це зупиняє сервер починати з помилки "недійсна кількість аргументів у директиві try_files". Мабуть, try_files
насправді потрібно спробувати більше одного файлу, що не є поведінкою, яку я шукаю.
Тому моє запитання таке: Як я так налаштовую блок розташування, щоб завжди повертати статичний файл?
EDIT: Я бачив з інших відповідей, які alias
дійсно повинні прийняти один аргумент як аргумент, тому я спробував:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
Але я все одно отримую лише 500 Внутрішніх помилок сервера. Журнал помилок для запиту "/" говорить:
[сигнал] 28112 # 0: * 7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" не є каталогом
Чому він намагається відкрити "index_debug.htmlindex.html"? Я index
ніде не використовую директиву.
location =/
я отримую 404 НЕ ЗНАЙДЕНО, location /
я отримую 500 Внутрішніх помилок сервера .
location / { return 404; }
location = / {Index /home/tomas/projects/streamcore/static/index_debug.html;}
try_files static/index_debug.html static/index_debug.html;