Мне нужна помощь с nginx config для SPA. Я сделал мой из кусочков, которые мне удалось гуглить, но я не понимаю, как это работает.
Что мне нужно:
1) Служить stati c files
location ~ \.(css|js|svg|woff|woff2|ico|ttf|eot|jpe?g|png|txt)$ {
try_files $uri $uri/ =404;
expires 1y;
add_header Cache-Control "public";
}
Если файл не найден, я возвращаю 404. Это нормально, если я просто ввожу неправильное имя файла в URL, но если я ввожу неправильное имя файла в своем индексе. html вместо страницы 404, я получаю пустую страницу. Это должно быть так?
2) Запросы на / api необходимо перенаправлять на бэкэнд Node
location /api {
try_files '' @proxy;
}
location @proxy {
proxy_pass http://localhost:3000;
}
Я не совсем уверен в этой строке, если это должно смотри так
try_files '' @proxy;
3) И самая большая проблема: запросы, которые не совпадают ни с чем, должны возвращать индекс. html
location / {
try_files '' /index.html;
expires -1;
}
location = /index.html {
expires -1;
}
Насколько я понимаю, перенаправления первого блока все неизвестные запросы на индекс. html, но я не понимаю, как второй блок обслуживает этот индекс. html. Я не пишу для обслуживания этого файла, директивы try_files нет.