Primera vez que uso nginx. Quiero reenviar cualquier solicitud entrante que tenga este aspecto: https://www.example.com/elasticsearch
a http://localhost:9200
con nginx. Escribí lo siguiente en mi configuración de nginx en la etiqueta http.
server {
listen 3333;
server_name www.example.com/elasticsearch;
return 301 $scheme://localhost:9200;
location / {
allow 'elasticsearch';
deny all;
}
}
Desafortunadamente, cuando lo uso nginx -t
recibo el siguiente emerg:
nginx: [emerg] invalid parameter "elasticsearch" in /etc/nginx/nginx.conf:79
Respuesta1
server_name
El parámetro contiene solo el nombre del servidor, no ningún URI en el servidor.
Puedes hacer la reescritura así:
server {
listen 3333;
server_name www.example.com;
location /elasticsearch {
return 301 $scheme://localhost:9200;
}
}
Si desea denegar el acceso a otras ubicaciones, lo que dice su configuración pero su pregunta no, puede usar este location
bloque además del anterior:
location / {
deny all;
}