location ^~/images/ { root /mnt/disha; } location ^~/pdf/ { root /mnt/disha; } location ^~/contact/ { root /mnt/disha; } location ^~ /excel { root /mnt/disha; }¿Cómo puedo combinar estos 4 en 1 ubicación?
Intenté esto:
location ~ ^/(images|pdf|contact|excel)/ { root /mnt/disha; }Funcionó bien con 4 ubicaciones, luego nginx viene 404 Not Found una vez que se combina con 1.
También probé la ubicación ~* ^/(imágenes|pdf|contacto|excel).
todos los métodos que probé no son válidos, ¿qué debo hacer?
aquí está toda la configuración de mi servidor:
server{ listen 80; listen 443 ssl; server_name erp.xxx.com; index index.html; location ~ ^/(images|pdf|contact|excel)/ { root /mnt/disha; } location ^~/{ root /mnt/disha/erp; } ssl_certificate /etc/xxx/xxx.pem; ssl_certificate_key /etc/xxx/xxx.key; ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; }la solicitud 404 que probé:
wget http://erp.xxx.com/excel/export_outbound_stock_20200321150255.xlsEl modificador ^~ hace que una location de prefijo coincidente tenga prioridad sobre todos los bloques de location de expresiones regulares.
La location ^~ / { ... } deshabilita efectivamente cualquier ubicación de expresión regular.
Para cambiar sus cuatro bloques de location de prefijos en un solo bloque de location de expresión regular, también debe eliminar el modificador ^~ del bloque de location final.
Por ejemplo:
root /mnt/disha/erp; location / { } location ~* ^/(images|pdf|contact|excel)/ { root /mnt/disha; } De hecho, la location / bloque se puede omitir si está vacío, ya que la instrucción root se puede colocar en el contexto del bloque del server .
Vea este documento para más detalles.