Creando un server PROXY con NGINX [PARTE 4]
HTML-код
- Опубликовано: 6 сен 2024
- Hoy aprendemos como crear un server proxy con Nginx. Usando proxy_pass y haciendo un upstream para balancear la carga entre 2 servidores de aplicaciones.
Estos servidores pueden ser cualquier tipo de webserver, python, apache, node o incluso Windows.
Doc Nginx: docs.nginx.com...
--
Repo con todos los archivos que uso: github.com/pab...
MERCH: merch.peladone...
Micrófono: Rode VideoMicro + Zoom H1N
Cámara: Canon Rebel SL2
Lente: Canon 18-55mm f/4.0-5.6
Laptop: Macbook Pro 15'' 2017
Kit completo: bit.ly/kit-pel...
Mi canal de vlogs: bit.ly/youtube...
Comunidad de Reddit: bit.ly/reddit-...
Comunidad en Slack: bit.ly/slack-pe...
Comprame un cafecito: bit.ly/kofi-pe...
Varios comentaron correctamente que se puede poner los upstream en los archivos de vhost. Esto sería así:
upstream backend {
server x.x.x.x;
server y.y.y.y;
}
server {
server_name midominio.com;
location /app {
proxy_pass backend;
}
}
Gracias a los que comentaron!
pelado nerd estoy interesado en adquirir un vps en upcloud use tu codigo... y la duda es que si compro 2 nucleos 4gb mas adelante podre aumentar el tamaño sin que tenga que mover el server?
@@andres-rovira se redimensiona el server y no toca la configuración
@@EnglishForKidsEasy osea que haciendo lo del video conseguiria eso que tu dices?
Sí porque los archivos de configuracion de los sitios estan en el bloque http, el bloque http tiene dentro bloques de servers y upstream debe estar fuera del bloque server para que siga estando dentro de http
buenas Pelado gracias por tus videos, tengo una serie de dudas si nginx lo estamos configurando como proxy inverso , nuestros servidores web que están detras del nginx, son apache tienen diferentes webs cada una con una url diferente. Esas webs podrían estar accesibles sin pasar por nginx? gracias
A mi poniendo la ip como en el video en el proxy_pass inicial me daba 404, hasta que no he puesto una barra "/" no me ha funcionado.Usando de ejemplo la ip del video, creo que esto es porque si no ponemos la "/" en el server destino esta buscando 94.237.97.215:8080/app/ y no 94.237.97.215:8080 a secas
Me salvaste de la desesperación
Muy buen video Pablo, estaría bueno un nuevo video de traefik con docker y su archivo de configuración.
el upstream lo puedes colocar en el mismo archivo, para que no toques el config seria: upstream backend { server ip:port } server { #server config }, asi seria mas facil de administrar en el mismo archivo, si te das cuenta el http hace un include de los archivos de configuracion y todo queda dentro de http {}, muchas gracias por el video
Ah no lo sabia, lo voy a investigar bien y lo agrego en la descripción o en un comentario. Gracias por la aclaración!
Me encantó esta serie de nginx! Super clara y didáctica muchas gracias!
Pelado déjame felicitarte 👏
Haces un trabajo genial ensañando muchos del como hacemos este trabajo.
Te felicito men, y sigue haciendo videos que aportan mucho a chicos que están recién comenzando y no saben por donde comenzar.
Siempre e tenido ganas de hacer videos del como crear infraestructuras reales y como aplicarlas a producción pero no me da el tiempo y no tengo ese toque para explicar lo e aprendido de forma didáctica y que no sea censador para aquel que lo mira.
Me hubiese gustado algo así por los años 2000 para no haber sufrido tanto leyendo documentación en ingles.
Muchas gracias por los videos. Solo te sugería que cuando escribe hagas una pausa, para poder verlos con detalle.
Muchas gracias por tu tiempo a los que queremos aprender
Buenas! Podes poner pausa en el vídeo cuando quieras
Muchas gracias Pelado por estos videos. Satisfactorio recibir instrucciones de alguien que sabe bien lo que hace.
Cómo de costumbre, primero like y luego ver el vídeo, porque la calidad es asegurada en este canal.
laseguridad se te paso por alto amigo, salut desde Montreal Canada, de SRE a SRE salut
haber cuando hablamos, hay muchos projectos en mi cabeza, trabajo para aws
Muy buen aporte, muchas info muy interesante. Ojala sigan los cursos!!
Buenisimo. Me sirve mucho para el laburo y mas que nada para desarrollar algunas ideas que tengo. Gracias! Espero el siguiente ja.
que buen video, acabo de terminar la lista de nginx y me voy a emprezar el de docker
YO SI LE FOY ME GUSTA PELADO!!!! ERES UN GRAN MAESTRO, GRACIAS POR TUS TUTOTRIALES!!!!
Un groso pelado seguí con estos videos que son muy utiles. un abrazo desde cordoba
Excelente lo sabia en haproxy
Impresionanteeeeee.....
muy buen video, sabes si se puede también servir un contenedor de docker con un frontend de vite.js? es un SSR, la vaina es que seria localhost el http a servir? mas el puerto en el que sirve la app???
excelente tutorial, podrias realizar la instalacion de un proxy reverse desde 0, seria genial, sigue asi buen trabajo
Hola, muy buenos tus videos, aprendí Dockers con estos. ¿Cómo puedo tener más de un sitio web, en distintos docker que respondan a distintos dominios, en uh mismo servidor, con nginx proxy manager? Difícil la tarea. Pero estoy seguro que para ti es como soplar.
Muy bueno. Por favor seguí con más videos.
Muy buenas explicaciones y HUmor!! Gracias Pelado!!
nubecita por alla en la patineta jajajajajaja
Muchas gracias Pela.... excelente video....
Hola Pablo, primero agradecerte tus vídeos, he aprendido muchísimo viéndolos. Soy fan tuyo. Solo preguntarte una duda, si se quiere levantar un proxy para backend en producción es aconsejable hacerlo con docker o de la forma clásica con apt-get en Ubuntu server?, Muchas gracias.
Genial, great video, thanks Pelado!!
Excelente vídeo Impresionantee..., Podrías hacer un curso de como implementar una arquitectura de microservicios configurada completamente con Nginx, es decir con los componentes de una arquitectura de microservicios(api-getway,authentication authorization, Load Balancing y varios microservicios) y también utilizando docker ? seria muy útil.
Gracias Pelado!
tremendo trabajo!, contigo siempre aprendo algo nuevo (Para mi) jaja
Podrias hacer un vídeo para la caché?
sos un genio Pablo, muchas gracias, tengo una unica consulta - si vos tenes una misma app con balance de carga pero tienen conexion a base de datos en la ip pones la App en la ip2 pones la app y en cual pones la DB?? tenes un servidor con ip3 que va la base de datos, no tiene mucha latencia??
Si quiero hacer un ftp y que envíe a una u otra dirección dependiendo del dominio al que se hace el ftp se puede hacer con stream? Gracias
Qué excelente explicación!!!
Hay forma de usar nginx para servidor proxy web en una empresa usado squid pero no me da las webs https
Pela, consulta. Levanté Nginx, le cargué cerbot y redireccioné hacia un LibreNMS que tengo en una IP Privada. Como parte del contenido está cifrado y otra parte no, me carga cualquier verdura. Algún tip? Muchas gracias!
Excelente... Amo todo lo que subís, solamente dos peticiones, un curso de kubernetes para dummies (yo) y cuál es tu opinión de Caddy Server?
Hay una lista completa de Kubernetes con muchisimos videos, fijate eso. Caddy server lo he sentido nombrar pero no lo he probado nunca. Lo tengo en la lista para investigar, apenas tenga tiempo seguro me armo un videito.
Pelado puedes enseñar algun servicio que monitoree otros servicios para que cuando se cae nos envie un email de que esta down?
Voy a investigar a ver si encuentro algo
@@PeladoNerd ruclips.net/user/pandorafms
@@jimmyolano929 lo revisare gracias
Hola, los dos servidores tienen que estar corriendo la aplicacion web, o nginx automaticamente se encarga de levantarla.
ya lo esperaba con ansias
Uso Jellyfin en lugar de Plex, el límite que tengo es que como está en la red local el escalamiento horizontal es difícil. quince hacerlo con caché proxi Ngnix pero me detuvo el límite de subida que me da mi ISP, luego con vps's pero el límite de almacenamiento es el problema y ahora me gustaría hacerlo con cubernetes y Rancher para tener varios vps y sumar el almacenamiento escalar así horizontalmente he ir pagando conforme vaya necesitando, pero no lo sé nada de cubernetes, pagaría por un curso para poder hacerlo.
Voy a ver si armo algo, el tema de las VPS es que los torrents los bloquean en muchos proveedores, pero ya voy a ver si armo algo
Hola, son geniales tus videos! no entiendo algo. En cuanto a las apps que escucharían en :8080 , ambas apps deberían tener la misma ip y ambas escucharían a la misma vez? las apps estarían haciendo lo mismo , o haciendo cosas diferentes? y por ultimo, deberían estar ubicadas dentro de var/www/app o no necesariamente? Trato de seguirte, estoy aprendiendo muchísimo. Muchas gracias! 🤗
Genial y útil como siempre
Una duda, tengo una aplicacion vieja a la que quieren meterle ssl, hasta ahi sin problemas. lo dificil, o donde me quedo cojo es al redirigir una peticion a un puerto tcp concreto. Miro y miro y veo que es usando ·stream", sin embargo no acabo de ver bien como se implementa.
como resuelvo el error por cors, estoy usando spring en docker
IMPRESIONANTE
una pregunta si es wordpress como se lo haria ?
En docker sería crear, los server y luego editar los ficheros entrando al server, o desde docker compose se puede hacer??
Con docker compose podes montar archivos directamente en el contenedor. También muchos contenedores los podes configurar por medio de variables de entorno
Toca tener en cuenta que tienen que estar abiertos los puertos en el firewall de cada servicio en el proveedor cloud TCP
deja muchas cosas como firewall y seguidad de mismo servidor, esta bien el video para novatos
Pablo gracias por tus vídeos.
Yo no trabajo de informático pero antes era mi pasión y ahora gracias a ti está empezando a interesarme .
Aprovecho para preguntar ;-)
Uso el nginx proxy manager en docker compose. Porque soy muy inquieto y no paro de meter contenedores y me es cómodo. El problema es que me salen en rojo todos los que no terminan con el dominio original, por ejemplo: a.a.duck.org y b.a.duck.org ok pero a.b.duck.org y yo.com nok salen en rojo y no van. Por supuesto los 3 dominios apuntan a mí ip. Hay alguna limitación?
Otra pregunta un contenedor dejo de funcional para siempre tras instalar actualización del kernel en Ubuntu. Borre todo, imagen y volúmenes y nada, tube que formatear , hay algo con lo que tener cuidado a la hora de actualizar?
Gracias
Lo solucione cambiando a la imagen de jc21, antes no me funcionaba nada esta imagen , pero ahora puedo poner los dominios como quiero
pero yo queria ver haciendolo con websocket secure, para pasar trafico sip. Total, que ahre, re sirvio tu video.
Hola, la verdad que esto del balanceador de carga está muy interesante. Pienso, en que se me podría caer uno de los servidores o dejarlo fuera de línea para actualizar o realizar operaciones de mantenimiento, ¿qué política debería usar para decirle a nginx que momentáneamente no me envíe peticiones a ese server?
Muy buen video Pablo, estaría bueno un Vídeo sobre Argo cd
Lo tengo en mi lista, en el laburo lo usamos, pero no me siento cómodo todavia como para enseñarlo.
Muy bueno los vídeos. Lo que no comentaste como se comporta o solucionas el temas de session con el balanceo de carga. No que otras q session con otros servicio mysql, redis, o q un cliente que siempre conecte con el mismo server hasta que caduque la session con php?
Buena pregunta, idealmente, deberias guardar las sesiones externamente (como en redis) ya que hacer que los clientes se conecten siempre al mismo server (sticky sessions) no escala, ya que alguno de tus backends se puede caer, y eso va a hacer que el cliente pierda la sesión, no tiene sentido.
Saludos
tienes algun video donde expliques como usar *https* en un servidor proxy nginx. Lo voy a usar para Photoprism. Gracias
Y como sería para que el contenido de ambos servidores sea el mismo? Porque si primero entras a uno y luego al otro es como si fuera una visita nueva
Pelado me hiciste buscar la doc, me engañaste como lupe... jejeje
Era para ver si estaban atentos (?) ahi la puse
Tienes Cursos en Udemy?? que hable de configuraciones de servidores, balanceo de carga, servidores espejo. configuración de servidores con docker. etc?
en el nginx de docker de raspberry pi no me aparece lo de sites-enabled, que puedohacer para con figurarlo con proxy? :c
Gracias Pablo
Si uno de los servers upstream está caído, es posible manejar esa situación y que el balanceador no apunte a un servicio caído?
Tengo una duda el parametro
proxy_set_header X-Real-Ip $remote_addr;
Es necesario por motivos de seguridad? o es mas para avisarle al usuario que Nginx esta funcionando como Proxy?
Más que nada por una buena práctica para que el server que recibe el request sepa de dónde viene
genial tus videos..!!; el proxy_pass al utilizar para un servidor de windows y este autentifica con ntlm para el acceso al aplicativo, esto soporte nginx ?
Parece que si, fijate acá: nginx.org/en/docs/http/ngx_http_upstream_module.html#ntlm
Tengo una duda. Si tienes un LEMP o un LAMP (en mi caso LEMP) en una raspberry pi ¿puedes tener nginx proxy manager para hacer reverse proxy? Creo que tengo algún tipo de conflicto entre puertos y no me funciona, pero no entiendo el método que debo usar para solucionarlo. Tengo Cloudflare de por medio también: Aiudaaaa!
Bien
Grande pelado lider! Tengo un pedido un DNS Server en docker. Tuve mi dominio apuntado a un bind9 todo en mi raspi pero me costó un montón y me gustaría correrlo dockerizado
Grande peladex
Genial es contenido un saludo
Como hago para denegar el acceso a una IP determinada de mi red interna?
En mi caso he definido dentro del parametro location / lo siguiente:
location / {
include snippets/proxy-params.conf;
include snippets/internal-access-rules.conf;
proxy_pass 107.XXX.XXX.XXX/;
}
Donde en internal-access-rules.conf he colocado:
allow 192.168.1.0/24;
deny all;
Luego reinicio el nginx.
Al intentar acceder al dominio desde la red bloqueada o desde cualquier otra red puedo acceder sin problemas cuando deberia bloquearme. Que puede estar sucendiendo?
Saludos
Gracias!
EXCELETE!!!!
excelente, me gustaria hacer streaming de video rtmp con nginx un curso es si se puede gracias de antemano
Una consulta, he trabajado con nginx en un vps en digitalocean, tengo tal cual mi frontend como pelado nerd enseña, la parte de mi backend que es con nodejs (3 a la vez del mismo) la estoy ejecutando en un subdominio con nginx (con upstream de los 3 server localhost:xxxx) el inconveniente es lo lento que responde mi backend, eso a que se debe, aiudaaa.
Genial!!!
Genio. Stop.
Buenas tardes amigos una pregunta como se podria hacer para tener un server que s sprincipal y otro solo de respaldo, que busco de modo que si se cae el principal de una entre el de respaldo y asi los usuarios no se enteran, mas no que este siempre balanceando, solo quiero que nginx envia la data al de repaldo si y solo si el principal se cae, muchas gracias
y si manejo sesiones? :)
Las sesiones irian afuera, en un redis por ejemplo
Hola tengo un problema, solo para poner un poco en contexto, tengo dos instancias de tomcat y un Apache como virtual host, configure las DNS y también hice la configuración de los dominios y cuando se ingresa el dominio ya abre la instancia de tomcat correspondiente. El problema es el siguiente, cuando abro la aplicación web (que no la desarrolle yo solo me pidieron hostearla y configurar el servidor para que funcione correctamente) hay una parte donde muestra unas imágenes y primeramente las mostraba bien, pero cuando hice lo del certificado ssl (con certbot) la aplicación seguía funcionando bien pero las imágenes ya no se mostraban, después me pidieron que le quitara el certificado de seguridad, y al quitarlo pensé que las imagines volverían a mostrarse, pero no :(... al revisar con el inspector de chrome la imagen pasa algo muy curioso la dirección de la imagen empeiza por http, y si la cambio por https, la imagen se muestra... entonces como resuelvo eso!! ya llevo varias horas y nada. Es importante mencionar que con el certificado instalado AUN cambiando por https no mostraba la imagen. Si alguien sabe como solucionar eso tendria todo mi respeto... jeje
Ahora sí entendí....era medio lento....
ahora probalo con postman... y pone de alias docker
messsirve, graciass
Seria interesante un video de traefik.
Hice 2 videos de Traefik, fijate en el canal
Que tal Pelado, cuando coloco el location y coloco mi IP, una vez que reviso que no haya errores y recargo y al colocar mi dominio.com/app me aparece un error 502 bad gateway, que podría estar sucediendo ahí?
Ei Adrian, solucionaste esto?
Le falto explicar que habia hecho otro servidor con la direccion que pone como servidor upstream, si no tienen ese les va a mandar a que no hay un servidor que reciba esa parte, ya si esta configurado les puede dar otra falla un 40X
Nginx sabras como utilizarlo como Proxy? Cómo lo usan para Steam Cache.
Si, creo que ese es el proximo
@@PeladoNerd Díos te bendiga te prendó una vela en tu altar. 😅
mierd... q facil es hacer un balanceo cn pesos para cada app, muy bueno!!!
¿Quien me explica con plastilina?. El pelado dice que no sabe lo que están haciendo hasta el momento. Ósea que esto no sirve para publicar algo en producción y recomiendas django python y podman? Expliquen porfavor!
Primero buenas 👍
8:11 Visitante inesperado. Quería fama.
No encuentro las partes 1,2 y 3
Creando un server PROXY con NGINX [PARTE x]
Las borraron?
Hola, acá está la lista completa: ruclips.net/p/PLqRCtm0kbeHD7A5f8Yft-5qFg-sgXvGzR
Hola Pelado , muy bueno el video. Qué onda esta solución nginxproxymanager.com/ ??
Funciona igual / similar al de tu vídeo ?
Saludos
estaría bueno que el pelado tocara ese tema, yo ando batallando con tener pihole y nginxproxymanager, nose si sea porque usan el mismo puerto. saludos
Hola, A ver si alguien me puede ayudar con esto.
Tengo un servidor con nginx y tengo configurado un reverse proxy para 2 rutas.
/app/pgadmin y /app6 por alguna razon la ruta de pgadmin al redireccionar mantiene la ruta anterior "/app/pgadmin" pero app6 me elimina la ruta al redireccionar (ejem.: si la ruta debia ser /app6/login termina siendo solo /login). No se que hice mal con app6 alguna idea?
location /app/pgadmin {
proxy_set_header Host $host;
proxy_set_header X-Script-Name /app/pgadmin;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass localhost:5050/;
}
y,
location /app6 {
proxy_set_header Host $host;
proxy_set_header X-Script-Name /app6;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass localhost:3001/;
}
1:42 ¿En serio?
oie pelado nerd, q te parece nginxproxymanager.com/ ? lo has trabajado, se me hace q todo por interfaz esta bien rapido para hacer configuraciones sencillas. Deberias checkearlo.
Hola, la verdad no lo conocia, lo voy a investigar!
@@PeladoNerd cuando hablas de este nginxproxymanager?