#nginx #nginx-location
#nginx #nginx-location
Вопрос:
моя текущая настройка:
- вводимые пользователем www.example.com/example/xx/healthcheck
- kubernetes отслеживает вход с помощью серверной части в качестве /example и переходит к службе nginx
- nginx с этой небольшой конфигурацией:
server {
listen 80;
listen [::]:80;
server_name localhost;
location /example/xx/healthcheck {
root /usr/share/nginx/html;
index output.html;
}
я разместил output.html внутри /usr/share/nginx/html/example/xx/проверка работоспособности
Моя проблема в том, что когда я нажимаю www.example.com/example/xx/healthcheck он не загружает страницу. это работает только в том случае, если в конце у него есть косая черта www.example.com/example/xx/healthcheck /
есть ли правильный и лучший способ сделать это? Я хочу www.example.com/example/xx/healthcheck и он попадает на страницу.
Спасибо
Ответ №1:
Вы можете использовать
location = /example/xx/healthcheck {
default_type text/html;
alias /any/path/to/output.html;
}
Осторожно — запрос с косой www.example.com/example/xx/healthcheck/
чертой больше не будет работать с этой конфигурацией, хотя он будет работать, если вы используете ваш location /example/xx/healthcheck { ... }
в качестве второго или используете правило перезаписи, например
rewrite ^/example/xx/healthcheck/$ /example/xx/healthcheck;
Комментарии:
1. Я только что попробовал это, но он загружает файл вместо отображения файла в браузере. Есть ли способ отобразить содержимое в браузере? Спасибо!
2. @sdas2 Извините, не подумал о том, что
location
блок будет использовать тип mime по умолчанию (обычноapplication/octet-stream
). Обновлен ответ.3. я использовал это « location /example /xx/healthcheck { псевдоним /usr/share/nginx/html/output.html ; default_type application/октет-поток; } « Я перезапустил модуль, и он по-прежнему загружает файл. это неправильный тип по умолчанию?
4. @sdas2 Я сказал, что обновил ответ. Разве вы не заметили, что ответ был отредактирован?
application/octet-stream
это тип MIME по умолчанию, его следует изменитьtext/html
.5. @sdas2 я использовал
location = /example/xx/healthcheck { ... }
, а неlocation /example/xx/healthcheck { ... }