Первый раз использую nginx. Хочу пересылать любой входящий запрос, который выглядит так: https://www.example.com/elasticsearch
на http://localhost:9200
с помощью nginx. Я написал следующее в своей конфигурации nginx в теге http.
server {
listen 3333;
server_name www.example.com/elasticsearch;
return 301 $scheme://localhost:9200;
location / {
allow 'elasticsearch';
deny all;
}
}
К сожалению, при использовании nginx -t
я получаю следующее сообщение:
nginx: [emerg] invalid parameter "elasticsearch" in /etc/nginx/nginx.conf:79
решение1
server_name
параметр содержит только имя сервера, а не какой-либо URI на сервере.
Вы можете сделать переписывание следующим образом:
server {
listen 3333;
server_name www.example.com;
location /elasticsearch {
return 301 $scheme://localhost:9200;
}
}
Если вы хотите запретить доступ к другим местоположениям, о которых говорится в вашей конфигурации, но не говорится в вашем вопросе, вы можете использовать этот location
блок в дополнение к вышеперечисленному:
location / {
deny all;
}