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

264
Views
Nginx con docker, ubicación diferente a la barra no encontrada

Resumen

Creé este sencillo ejemplo para corregir y comprobar los errores que tengo en otro proyecto más complejo. Así que tengo un archivo docker-compose con 1 servidor web y 2 aplicaciones y un archivo nginx conf.

Tenga en cuenta que lo estoy probando con Docker Quick Start Terminal para Windows 10 Home Edition , pero lo probé incluso en Ubuntu 18.04 y el resultado es el mismo.

Salir

Ir a: http://192.168.99.100:8080/
Salida predeterminada:

¡Funciona!

El único problema aquí es con app2, ya que no puedo acceder a app2 .

Ir a http://192.168.99.100:8080/app2 .
Error:

Extraviado

La URL solicitada no se encontró en este servidor.

No entiendo por qué no puedo hacer eso y dónde está el error.

lo que he probado

  • Cambie el orden de ubicación, de modo que location /app2 después de location / , pero nada cambió
  • Cambie la ubicación de location /app2 a location /foo , incluso aquí el mismo resultado.
  • Cambie la ruta relacionada con el ejemplo anterior, cualquier cosa diferente de location / no funciona. (por ejemplo location /bar location /foobar location /test )
  • Cambie location / para referir la aplicación 2 en lugar de la aplicación 1, y funciona, pero de esta manera no puedo llegar a la aplicación 1.

     location / { proxy_pass http://app2:80 ; }

    location / { proxy_pass http://app2:80 ; }

    ubicación /aplicación1 { contraseña_proxy http://aplicación1:80 ; }

Código

docker-compose.yml

 version: "3.7" services: web: image: nginx:alpine volumes: - ./nginx.conf:/etc/nginx/nginx.conf ports: - 8080:80 networks: - app1_net - app2_net app1: image: httpd:latest networks: - app1_net app2: image: httpd:latest networks: - app2_net networks: app1_net: app2_net:

nginx.conf

 events {} http { server{ listen 80; listen [::]:80; server_name localhost; location /app2 { proxy_pass http://app2:80; } location / { proxy_pass http://app1:80; } } }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esta es la forma correcta, use una expresión regular para permitir la navegación de subcarpetas y una coincidencia perfecta en /app2 para redirigir el tráfico en http://app2 :

 location ~ ^/app2/(.*)$ { proxy_pass http://app2/$1; } location = /app2 { proxy_pass http://app2/; } location / { proxy_pass http://app1; }
over 4 years ago · Santiago Trujillo Report

0

He agregado otra respuesta de stackoverflow aquí.

Se resume aquí:

  • Mi configuración tiene un par de aplicaciones detrás de nginx. Quiero redirigir /appx-uri/bla/blo/bli a /appx-uri/bla/blo/bli/ en lugar de /bla/blo/bli/ que es el comportamiento predeterminado de nginx .
  • Además, todos mis archivos estáticos (para una aplicación) se recopilan para que nginx sirva /repairapp/static/ .

Agregar la directiva rewrite ^/repairapp/([^static].*[^/])$ /repairapp/$1/ permanent; en el bloque del servidor lo arregla.

entonces tengo

  • Para solucionar el problema: rewrite ^/repairapp/([^static].*[^/])$ /repairapp/$1/ permanent;
  • Para que nginx sirva la location /repairapp/static/ {
  • Para acceder a la location /repairapp/ {
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!