Como hacer un proxy rápido con tinyproxy para evitar problemas con CORS

blog-image

Para evitarnos problemas con CORS, podemos utilizar un proxy para hacer las llamadas a nuestra API.

Para ello, utilizaremos el programa Tinyproxy, disponible desde los repos de Ubuntu.

Una vez instalado, necesitamos crear un archivo de configuración al que llamaremos al ejecutar el proxy.

 User tinyproxy
Group tinyproxy
Port 80
Listen 0.0.0.0
BindSame yes
Timeout 600
DefaultErrorFile "/usr/share/tinyproxy/default.html"
StatFile "/usr/share/tinyproxy/stats.html"
Logfile "/var/log/tinyproxy/tinyproxy.log"
#Syslog On
LogLevel Info
PidFile "/run/tinyproxy/tinyproxy.pid"
# Comment to use only the forward proxy
# Uncomment to forward the traffic to the reverse proxy
MaxClients 100
MinSpareServers 2
MaxSpareServers 5
StartServers 2
MaxRequestsPerChild 0
Allow 127.0.0.1
Allow 192.168.0.0/24
ViaProxyName "tinyproxy1"
ConnectPort 80
ReversePath "/" "http://0.0.0.0:8100/"
ReversePath "/api/" "http://0.0.0.0:8080/"
ReverseMagic Yes
ReverseOnly Yes

Las partes mas importantes de este fichero son :

Listen -> Aqui colocaremos la IP del proxy.

Allow -> Con esto podemos restringir el rango de IPs aceptadas por el proxy.

ConnectPort -> El puerto por el que haremos las llamadas al proxy.

ReversePath -> primero colocaremos la ruta diferenciadora, es decir, la que nos indicara que queremos hacer una llamada a la API. Es importante colocar una palabra que no se encuentre dentro de las rutas de nuestras API, ya que el proxy eliminará esa parte y nos redirigira al host que escribimos en la siguiente parte.

CUIDADO! El orden de los ReversePath es muy importante. Primero debemos colocar la raíz y luego las rutas.

Podemos colocar tantos ReversePath como necesitemos, Teniendo en cuenta que si escribimos una ruta, esta será eliminada por el proxy.