Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

626
Views
Sirva contenido estático a través de NGINX, según el nombre del subdominio

Estoy tratando de mejorar la velocidad de la página de un sitio que ejecuto sirviendo contenido estático directamente desde NGINX en lugar de que la solicitud llegue a PHP.

Tengo páginas web en rutas como esta:

  • gamea.com.misitio.com
  • otrob.net.misitio.com
  • finalc.org.misitio.com

Cuando se genera una página para estos, se almacena en una ruta como esta:

  • /almacenamiento/aplicación/page-cache/games/game/gamea_com/1.c
  • /almacenamiento/aplicación/page-cache/games/anot/anotherb_net/1.c
  • /almacenamiento/aplicación/page-cache/games/fina/finalc_org/1.c

La estructura de la ruta toma las primeras 4 letras del subdominio y luego sigue otra carpeta con la ruta completa y reemplaza "." con "_" - por ejemplo, "gamea.com" = "/juego/gamea_com/". El archivo de la página de caché real se almacena como "1.c"

¿Cómo podría lograrse esto a través de NGINX? Estoy un poco atascado, encontré este artículo pero no estoy seguro de cómo usarlo en mi caso. ¿Alguien puede proporcionar un ejemplo de configuración de NGINX que apunte a NGINX a la ruta correcta como se describe anteriormente?

agradezco a quien pueda ayudarme con esto!

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El primer paso es capturar las tres partes del subdominio usando una expresión regular y luego pegarlas en una instrucción root . Utilice capturas con nombre, ya que las capturas numéricas pueden estar fuera del alcance donde se evalúan. Vea este documento para más detalles.

Por ejemplo:

 server { server_name "~^(?<name1>.{4})(?<name2>.*)\.(?<name3>.*)\.example\.com$"; root /path/to/root/$name1/$name1$name2_$name3; ... }

Alternativamente, decodifique la variable $http_host usando un map . La expresión regular es la misma y el resultado podría usarse en una declaración root o try_files .

Por ejemplo:

 map $http_host $mypath { default "nonexistent"; "~^(?<name1>.{4})(?<name2>.*)\.(?<name3>.*)\.example\.com$" $name1/$name1$name2_$name3; } server { ... root /path/to/root; location / { try_files $uri /$mypath$uri =404; } }

Puede dividir los try_files en dos bloques de location con:

 root /path/to/root; location / { try_files $uri @other; } location @other { try_files /$mypath$uri =404; }

Cambie los términos según los archivos que desee que Nginx busque primero. Utilice instrucciones add_header en cualquiera de las dos location para personalizar la respuesta adecuada. Vea este documento para más detalles. Cualquier location puede contener encabezados específicos

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!