Я пытаюсь заставить Nginx возвращать простую веб-страницу, но всегда с кодом состояния http 403. По какой-то причине я просто не могу заставить ее работать. У меня есть два файла в / var / www / html /:
index.html отображает текст вместе с photo.jpg
Вот моя конфигурация Nginx:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
return 403;
}
error_page 404 /index.html;
error_page 403 /index.html;
location = /index.html {
allow all;
}
location = /photo.jpg {
allow all;
}
}
С этой конфигурацией как есть и index.html, и photo.jpg отображаются со статусом 200. Если я удалю location
блоки для этих двух файлов, ни один из них не отображается, но они имеют статус 403. Мой вопрос: как я могу отобразить html-файл вместе с изображением, но просто вернуть статус 403? Я чувствую, что упускаю что-то простое.
Ваш location / {}
, содержащий return 403;
соответствует первым. Вы должны переместить его под двумя другими.
Удачной стрельбы по ногам!