Tareas #6261
Tareas #6252: Reamar servidor de repositorios de Linux
Investigar como configurar el nuevo repo para que las antiguas direcciones sigan funcionando.
Status: | Resuelta | Start date: | 07/04/2019 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | Javier Gonzalez | % Done: | 100% | |
Category: | - | Estimated time: | 5.00 hours | |
Target version: | - | Spent time: | - |
Description
Las direcciones viejas son de la forma: http://repo.cure.edu.uy/distro/archivos
Las nuevas seran: http:// <distro>.repo.cure.edu.uy/<mirror, isos, etc>
Hay que investigar como configurar los nuevos virtualhost para que las direcciones viejas sigan funcionando cuando se realice el cambio de repo.
History
#1 Updated by Javier Gonzalez about 3 years ago
- Status changed from Nueva to Resuelta
- % Done changed from 0 to 100
Para que las direcciones antiguas continúen funcionando se decidió utilizar el modulo rewrite del web server apache: https://httpd.apache.org/docs/current/rewrite/intro.html
La idea es recibir las peticiones web a repo.cure.edu.uy y parsear la REQUEST_URI, según lo que esta contenga se redirige a la nueva dirección web.
Los cambios serian:
http://repo.cure.edu.uy/ubuntu/archivos a http://ubuntu.repo.cure.edu.uy/mirror
http://repo.cure.edu.uy/ubuntu/distribuciones a http://ubuntu.repo.cure.edu.uy/isos
http://repo.cure.edu.uy/debian a http://debian.repo.cure.edu.uy/mirror
http://repo.cure.edu.uy/debian-cd a http://debian.repo.cure.edu.uy/isos
Para que las re-direcciones funcionen incluimos en el virtualhost repo.cure.edu.uy:
#-----------------REDIRECCIONES------------------------------------------------
#Estas redirecciones estan para que los repos continuen funcionando aun en la
#direccion anterior.
#CAMBIA repo.cure.edu.uy/ubuntu/archivos --> ubuntu.repo.cure.edu.uy/mirror
RewriteEngine on
RewriteCond "%{REQUEST_URI}" "/ubuntu/archivos(.*)"
RewriteRule ^ http://ubuntu.repo.cure.edu.uy/mirror%1 [END,NE,R=permanent]
#CAMBIA repo.cure.edu.uy/ubuntu/distribuciones --> ubuntu.repo.cure.edu.uy/isos
RewriteCond "%{REQUEST_URI}" "/ubuntu/distribuciones(.*)"
RewriteRule ^ http://ubuntu.repo.cure.edu.uy/isos%1 [END,NE,R=permanent]
#CAMBIA repo.cure.edu.uy/debian-cd/ --> debian.repo.cure.edu.uy/isos
RewriteEngine on
RewriteCond "%{REQUEST_URI}" "/debian-cd(.*)"
RewriteRule ^ http://debian.repo.cure.edu.uy/isos%1 [END,NE,R=permanent]
#CAMBIA repo.cure.edu.uy/debian --> debian.repo.cure.edu.uy/mirror
RewriteCond "%{REQUEST_URI}" "/debian(.*)"
RewriteRule ^ http://debian.repo.cure.edu.uy/mirror%1 [END,NE,R=permanent]
#--------------------------------------------------------------------------------
Como funciona?
La sentencia RewriteCond se utiliza para chequear si la REQUEST_URI contiene la cadena de caracteres deseada, y a su vez utilizando (.*) indica que todo lo que le sigue a la cadena que buscamos se guarde en una variable, que luego utilizamos en la sentencia RewriteRule como %1, si hubiera mas RewriteCond la segunda seria %2, etc...
RewriteRule realiza el cambio de URL que le indiquemos y en este caso le concatena lo que quedo en %1.
#2 Updated by Javier Gonzalez about 3 years ago
Se realizaron pruebas utilizando las direcciones actuales (repo.cure.edu.uy/ubuntu/archivos) pero apuntando al nuevo servidor y el funcionan como siempre utilizando apt.
#3 Updated by Javier Gonzalez about 3 years ago
Se agregaron las redirecciones para: mxlinux y deepin.