es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pregunta sobre enrutamiento de NGINX: He pasado algunas horas en esto sin éxito hasta ahora.

He pasado horas en múltiples tableros de mensajes y foros buscando este patrón de configuración en NGINX. Quiero que un subdominio sea redirigido al puerto 8080 antes de que el “catch-all” capture todo lo demás que ingrese al dominio, incluyendo todos los demás subdominios, y lo dirija al puerto 443.

La redirección de 443 ya funciona perfectamente. Cualquier ayuda será apreciada, gracias.

Tengo adminer.server.app al que quiero ir a través de HTTP://adminer.server.app (realmente va al puerto 8080 después de que NGINX haga su trabajo).

Nuevamente, todo el otro tráfico ya está resuelto hasta ahora.

Aquí hay un fragmento de mi archivo de configuración:

servidor {
listen 80;
listen [::]:80;
server_name server.app www.server.app;

ubicación / {
return 301 https://$host$request_uri;
}

para desafíos de certbot (proceso de renovación)

ubicación ~ /.well-known/acme-challenge {
allow all;
root /datos/letsencrypt;
}
}

https://adminer.server.app

servidor {
escuchar 8080;

nombre_del_servidor adminer.server.app;
server_tokens off;
resolver 8.8.8.8;

ubicación / {
proxy_pass http://localhost:8080;

proxy_http_version 1.1;

proxy_set_header Host               $host;
proxy_set_header X-Real-IP          $remote_addr;
proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto  $scheme;

}
}

https://server.app

servidor {
escuchar 443 ssl http2;
escuchar [::]:443 ssl http2;
nombre_del_servidor server.app;

server_tokens off;

ssl_certificate /etc/letsencrypt/live/certs/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/certs/privkey.pem;

ssl_buffer_size 8k;

ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;

ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

ssl_ecdh_curve secp384r1;
ssl_session_tickets off;

OCSP stapling

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;

return 301 https://www.server.app$request_uri;
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para redirigir un subdominio al puerto 8080 antes de que el bloque de captura atrape todo lo demás que ingrese al dominio, incluyendo todos los demás subdominios, y lo redirija al puerto 443 en NGINX, puedes agregar un nuevo bloque de servidor encima del bloque de servidor de captura existente:

    http://adminer.server.app

    server {
    listen 80;
    listen [::]:80;
    server_name adminer.server.app;

    location / {
        return 301 http://adminer.server.app:8080$request_uri;
    }
    

    }

    Este nuevo bloque de servidor escucha en el puerto 80 y redirige cualquier solicitud al subdominio “adminer.server.app” al puerto 8080. El bloque “location /” utiliza la directiva “return” para emitir una redirección 301 a la URL especificada.

    Ten en cuenta que debido a que este nuevo bloque de servidor está por encima del bloque de servidor de captura existente, prevalecerá para cualquier solicitud al subdominio “adminer.server.app”. Todas las demás solicitudes seguirán siendo manejadas por el bloque de servidor de captura existente.

Comments are closed.