diff --git a/db_xala_dev/views.py b/db_xala_dev/views.py index a8f0f56..3c91f20 100644 --- a/db_xala_dev/views.py +++ b/db_xala_dev/views.py @@ -7,6 +7,8 @@ v = { 'me': 'more_info/about_me.html', 'np': 'new_posts.html', 'pjs': 'more_info/personal_projects.html', - 'cv': 'static/source_imgs/cv/CV_David_Itehua_Xalamihua.pdf' + 'cv': 'more_info/cv.html' + } } + # 'cv': 'static/source_imgs/cv/CV_David_Itehua_Xalamihua.pdf' \ No newline at end of file diff --git a/main.py b/main.py index ad1cb68..98f68ed 100644 --- a/main.py +++ b/main.py @@ -127,8 +127,12 @@ def projects(): @app.route('/more-info/cv') def cv(): - filePath=v['m.i.']['cv'] - return send_file(filePath, as_attachment=True) + return render_template(v['m.i.']['cv']) + +# @app.route('/more-info/cv') +# def cv(): +# filePath=v['m.i.']['cv'] +# return send_file(filePath, as_attachment=True) # solo ayuda dix template @app.route('/ayuda-template') diff --git a/requirements.txt b/requirements.txt index 53f4ce9..42bac2d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,9 @@ blinker==1.9.0 +cachelib==0.13.0 click==8.1.8 et_xmlfile==2.0.0 Flask==3.1.0 +Flask-Caching==2.3.1 itsdangerous==2.2.0 Jinja2==3.1.5 MarkupSafe==3.0.2 diff --git a/templates/components/copy-code.html b/templates/components/copy-code.html index f8702be..f42988c 100644 --- a/templates/components/copy-code.html +++ b/templates/components/copy-code.html @@ -1,9 +1,9 @@ - - - - - - -
{% if btn | default(true) %} Copiar código{% endif %}
-{{ codigo }}
-
+
+
+
+
+
+
+{% if btn | default(true) %} Copiar código{% endif %}
+{{ codigo }}
+
diff --git a/templates/components/src_collapse.html b/templates/components/src_collapse.html
index f85a96c..58f92ea 100644
--- a/templates/components/src_collapse.html
+++ b/templates/components/src_collapse.html
@@ -1,2 +1,2 @@
-
+
\ No newline at end of file
diff --git a/templates/html_template/38.html b/templates/html_template/38.html
index eeb854a..a45f9a1 100644
--- a/templates/html_template/38.html
+++ b/templates/html_template/38.html
@@ -1,236 +1,236 @@
-
-
-
-
-
-- Dominio de nuestra página web: Es el nombre que adquirimos a través de proveedores como - GoDaddy, Google Domains, Hostinger, entre otros. Este dominio será la dirección que - los usuarios utilizarán para acceder a nuestro sitio web. -
-- La IP pública: En muchos casos, la IP pública es dinámica, lo que significa que puede - cambiar con frecuencia. Esto puede ser un problema, ya que necesitamos una IP estática para garantizar la - accesibilidad constante de nuestros servicios. Para solucionar esto, podemos utilizar servicios como Duck DNS, que monitorea y actualiza automáticamente - la IP dinámica. Este servicio es especialmente útil para servicios como VPN, hosting web o conexiones SSH - (aunque este último no es recomendable por razones de seguridad). -
-- Configuración del router del ISP: En el router proporcionado por tu proveedor de - servicios de Internet (ISP), deberás abrir el puerto 80 (para este ejemplo). La configuración varía según - el modelo del router, pero generalmente debes buscar la opción de "Port Forwarding" o "Reenvío de - puertos". Allí, deberás agregar una regla que incluya: -
- IP's estáticas de los servidores en la red local: Tanto los servidores web como el - balanceador de carga deben tener direcciones IP estáticas en la red local. Esto asegura que los - dispositivos siempre estén accesibles y que la configuración de red sea consistente. -
-- SSL: Adicional a los puntos anteriores, no es obligatorio pero por seguridad debes - considerar usar un servicio SSL ya sea que lo contrates con el proveedor del dominio o con Cloudflare que tiene una versión gratuita. -
-- Para este ejemplo consideraremos la siguiente información para la configuración: -
-- Una vez instalado HAProxy podemos revisar si el servicio está activo con el comando: -
- -{% set i %} -systemctl status haproxy -{% endset %} -{% with codigo=i.strip(), isEditable="false" %} -{% include 'components/copy-code.html' %} -{% endwith %} - -- La salida del comando debe ser algo similar a este: -
- -{% set i %} -● haproxy.service - HAProxy Load Balancer - Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; preset: enabled) - Active: active (running) since Mon 2025-03-17 12:12:45 CST; 2 days ago - Docs: man:haproxy(1) - file:/usr/share/doc/haproxy/configuration.txt.gz - Main PID: 2643 (haproxy) - Tasks: 5 (limit: 8742) - CPU: 5min 30.311s - CGroup: /system.slice/haproxy.service - ├─2643 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock - └─2645 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock -{% endset %} -{% with btn=false, codigo=i.strip(), isEditable="false" %} -{% include 'components/copy-code.html' %} -{% endwith %} - -- Como podemos ver, HAProxy está activo, entonces podemos proceder a modificar el archivo de configuración con el editor - de nano y permisos de superusuario: -
- -{% set ii %} -sudo nano /etc/haproxy/haproxy.cfg -{% endset %} -{% with codigo=ii.strip(), isEditable="false" %} -{% include 'components/copy-code.html' %} -{% endwith %} - -- Nos vamos hasta el final del archivo de configuración y añadimos la configuración del "frontend": -
- -{% set iii %} -# frontend nombre_que_quieras -frontend https_frontend - # puerto que manejará el 80 - bind *:80 - # protocolo a usar - mode http - - # nombre de nuestro dominio: ejemplo-dom.com - # validador ejemplo-dom.com = is_ejemplo_dom_com (colocar el prefijo "is_", además los guiones medios y puntos se cambian a guiones bajos) - acl is_ejemplo_dom_com hdr(host) -i ejemplo-dom.com - # el nombre del backend puede ser el que tú quieras - use_backend ejemplo_dom_com if is_ejemplo_dom_com -{% endset %} -{% with codigo=iii.strip() %} -{% include 'components/copy-code.html' %} -{% endwith %} - -- Una vez configurado el frontend, continuamos en el mismo archivo y añadimos el "backend": -
- -{% set iv %} -# backend nombre backend usado en la configuración del frontend -backend ejemplo_dom_com - # protocolo de balanceo de carga (puedes dejarlo o googlear otros protocolos) - balance roundrobin - # protocolo para sitios web - mode http - # enlistar las IPs de los servidores web o coloca la DNS de cada uno de los servidores en caso de usar un servidor DNS. - server server1 198.162.10.4:80 check - server server2 198.162.10.5:80 check - server server3 198.162.10.6:80 check - server server4 198.162.10.7:80 check - # server{1-4} puede ser el nombre que tú quieras, solo es una referencia para HAProxy - # 198.162.10.X:80 = indica que el servidor con esa IP tiene un servicio web activo en el puerto 80, en caso de no usar el 80 solo reemplaza ese valor - # check = valida que el servidor esté operando antes de redirigir el tráfico -{% endset %} -{% with codigo=iv.strip() %} -{% include 'components/copy-code.html' %} -{% endwith %} - -- Una vez configurado el frontend y el backend en el archivo de HAProxy, guardamos CTRL + S, cerramos CTRL + - X. Para validar que la sintaxis de la configuración sea correcta puedes usar el comando: -
- -{% set v %} -sudo haproxy -c -f /etc/haproxy/haproxy.cfg -{% endset %} -{% with codigo=v.strip(), isEditable="false" %} -{% include 'components/copy-code.html' %} -{% endwith %} - -
- Si todo está bien en términos de sintaxis, la salida del comando debe ser: Configuration file
- is valid
- Procedemos a reiniciar el servicio de HAProxy con el comando:
-
- Listo, ahora podrás entrar a tu navegador web e ingresar el dominio ejemplo-dom.com. Tu proveedor de dominio
- redirigirá a Duck DNS que tiene tu IP y mandará el tráfico a tu router ISP, este a su vez lo mandará a tu balanceador
- de carga para finalmente redirigir el tráfico al servidor web
- que esté con menos carga.
- De forma práctica y simple, te recomiendo que en cada servidor web, en el HTML del sitio, en la página de inicio
- coloques un comentario con el número de servidor, y desde el lado del navegador web refresques la página y veas cómo
- cambia el número del servidor. Esto con la finalidad de saber si el balanceo de carga está funcionando, ejemplo diagrama de flujo:
-
+ Dominio de nuestra página web: Es el nombre que adquirimos a través de proveedores como + GoDaddy, Google Domains, Hostinger, entre otros. Este dominio será la dirección que + los usuarios utilizarán para acceder a nuestro sitio web. +
++ La IP pública: En muchos casos, la IP pública es dinámica, lo que significa que puede + cambiar con frecuencia. Esto puede ser un problema, ya que necesitamos una IP estática para garantizar la + accesibilidad constante de nuestros servicios. Para solucionar esto, podemos utilizar servicios como Duck DNS, que monitorea y actualiza automáticamente + la IP dinámica. Este servicio es especialmente útil para servicios como VPN, hosting web o conexiones SSH + (aunque este último no es recomendable por razones de seguridad). +
++ Configuración del router del ISP: En el router proporcionado por tu proveedor de + servicios de Internet (ISP), deberás abrir el puerto 80 (para este ejemplo). La configuración varía según + el modelo del router, pero generalmente debes buscar la opción de "Port Forwarding" o "Reenvío de + puertos". Allí, deberás agregar una regla que incluya: +
+ IP's estáticas de los servidores en la red local: Tanto los servidores web como el + balanceador de carga deben tener direcciones IP estáticas en la red local. Esto asegura que los + dispositivos siempre estén accesibles y que la configuración de red sea consistente. +
++ SSL: Adicional a los puntos anteriores, no es obligatorio pero por seguridad debes + considerar usar un servicio SSL ya sea que lo contrates con el proveedor del dominio o con Cloudflare que tiene una versión gratuita. +
++ Para este ejemplo consideraremos la siguiente información para la configuración: +
++ Una vez instalado HAProxy podemos revisar si el servicio está activo con el comando: +
+ +{% set i %} +systemctl status haproxy +{% endset %} +{% with codigo=i.strip(), isEditable="false" %} +{% include 'components/copy-code.html' %} +{% endwith %} + ++ La salida del comando debe ser algo similar a este: +
+ +{% set i %} +● haproxy.service - HAProxy Load Balancer + Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; preset: enabled) + Active: active (running) since Mon 2025-03-17 12:12:45 CST; 2 days ago + Docs: man:haproxy(1) + file:/usr/share/doc/haproxy/configuration.txt.gz + Main PID: 2643 (haproxy) + Tasks: 5 (limit: 8742) + CPU: 5min 30.311s + CGroup: /system.slice/haproxy.service + ├─2643 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock + └─2645 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock +{% endset %} +{% with btn=false, codigo=i.strip(), isEditable="false" %} +{% include 'components/copy-code.html' %} +{% endwith %} + ++ Como podemos ver, HAProxy está activo, entonces podemos proceder a modificar el archivo de configuración con el editor + de nano y permisos de superusuario: +
+ +{% set ii %} +sudo nano /etc/haproxy/haproxy.cfg +{% endset %} +{% with codigo=ii.strip(), isEditable="false" %} +{% include 'components/copy-code.html' %} +{% endwith %} + ++ Nos vamos hasta el final del archivo de configuración y añadimos la configuración del "frontend": +
+ +{% set iii %} +# frontend nombre_que_quieras +frontend https_frontend + # puerto que manejará el 80 + bind *:80 + # protocolo a usar + mode http + + # nombre de nuestro dominio: ejemplo-dom.com + # validador ejemplo-dom.com = is_ejemplo_dom_com (colocar el prefijo "is_", además los guiones medios y puntos se cambian a guiones bajos) + acl is_ejemplo_dom_com hdr(host) -i ejemplo-dom.com + # el nombre del backend puede ser el que tú quieras + use_backend ejemplo_dom_com if is_ejemplo_dom_com +{% endset %} +{% with codigo=iii.strip() %} +{% include 'components/copy-code.html' %} +{% endwith %} + ++ Una vez configurado el frontend, continuamos en el mismo archivo y añadimos el "backend": +
+ +{% set iv %} +# backend nombre backend usado en la configuración del frontend +backend ejemplo_dom_com + # protocolo de balanceo de carga (puedes dejarlo o googlear otros protocolos) + balance roundrobin + # protocolo para sitios web + mode http + # enlistar las IPs de los servidores web o coloca la DNS de cada uno de los servidores en caso de usar un servidor DNS. + server server1 198.162.10.4:80 check + server server2 198.162.10.5:80 check + server server3 198.162.10.6:80 check + server server4 198.162.10.7:80 check + # server{1-4} puede ser el nombre que tú quieras, solo es una referencia para HAProxy + # 198.162.10.X:80 = indica que el servidor con esa IP tiene un servicio web activo en el puerto 80, en caso de no usar el 80 solo reemplaza ese valor + # check = valida que el servidor esté operando antes de redirigir el tráfico +{% endset %} +{% with codigo=iv.strip() %} +{% include 'components/copy-code.html' %} +{% endwith %} + ++ Una vez configurado el frontend y el backend en el archivo de HAProxy, guardamos CTRL + S, cerramos CTRL + + X. Para validar que la sintaxis de la configuración sea correcta puedes usar el comando: +
+ +{% set v %} +sudo haproxy -c -f /etc/haproxy/haproxy.cfg +{% endset %} +{% with codigo=v.strip(), isEditable="false" %} +{% include 'components/copy-code.html' %} +{% endwith %} + +
+ Si todo está bien en términos de sintaxis, la salida del comando debe ser: Configuration file
+ is valid
+ Procedemos a reiniciar el servicio de HAProxy con el comando:
+
+ Listo, ahora podrás entrar a tu navegador web e ingresar el dominio ejemplo-dom.com. Tu proveedor de dominio
+ redirigirá a Duck DNS que tiene tu IP y mandará el tráfico a tu router ISP, este a su vez lo mandará a tu balanceador
+ de carga para finalmente redirigir el tráfico al servidor web
+ que esté con menos carga.
+ De forma práctica y simple, te recomiendo que en cada servidor web, en el HTML del sitio, en la página de inicio
+ coloques un comentario con el número de servidor, y desde el lado del navegador web refresques la página y veas cómo
+ cambia el número del servidor. Esto con la finalidad de saber si el balanceo de carga está funcionando, ejemplo diagrama de flujo:
+