Op school zit ik met een Tomcat4 server die enorm brak draait. Nu heb ik een tweede machine opgebracht die Tomcat 4.1.8 draait ipv 4.0.4, en die de webroot via NFS koppelt met de andere tomcat server.
Nu is het de bedoeling dat de website troep op de nieuwe tomcat4 server gewoon naadloos moet integreren met de oude apache server waar tomcat aan gekoppeld was. Probleempje: hoe wil je dat naadloos doen als apache, mysql en tomcat allemaal op dezelfde host draait, en niemand ff de moeite heeft genomen om bij de mysql connects even FQDN:3306 op te geven, maar "localhost:3306".
Zoiets is onmogelijk te loadbalancen. Eerste optie: zoek alle JSP files, trek ze door sed en laat alle localhost:3306 door de FQDN:3306 vervangen. Aangezien het maar tijdelijk is, en die mysql server misschien in de toekomst ook ergens anders gaat wonen, dacht ik aan firewalling/routing.
Ik denken: ha, dat gaat hetzelfde als met mn transparent proxy:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
en dan nog wat aanpassen zodat het naar een andere host gaat.
Probleem 1: localhost -> localhost is geen {pre|post}routing
Probleem 2: Redirect kent alleen een poortnummer
Hoe krijg ik nou alle requests van localhost naar localhost:3306 weggestuurd naar oudemysqlserver:3306 ?
Heb de hele avond wat zitten googlen, het enige wat ik tegenkwam was dat ik met OUTPUT zou moeten werken ipv PREROUTING, wat me op zich wel logisch lijkt. Echter alleen maar voorbeelden met die REDIRECT waar poortje 1234 naar poort 8076 wordt geforward op dezelfde host, iets wat ik niet zie zitten in mijn geval.
Nu is het de bedoeling dat de website troep op de nieuwe tomcat4 server gewoon naadloos moet integreren met de oude apache server waar tomcat aan gekoppeld was. Probleempje: hoe wil je dat naadloos doen als apache, mysql en tomcat allemaal op dezelfde host draait, en niemand ff de moeite heeft genomen om bij de mysql connects even FQDN:3306 op te geven, maar "localhost:3306".
Zoiets is onmogelijk te loadbalancen. Eerste optie: zoek alle JSP files, trek ze door sed en laat alle localhost:3306 door de FQDN:3306 vervangen. Aangezien het maar tijdelijk is, en die mysql server misschien in de toekomst ook ergens anders gaat wonen, dacht ik aan firewalling/routing.
Ik denken: ha, dat gaat hetzelfde als met mn transparent proxy:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
en dan nog wat aanpassen zodat het naar een andere host gaat.
Probleem 1: localhost -> localhost is geen {pre|post}routing
Probleem 2: Redirect kent alleen een poortnummer
Hoe krijg ik nou alle requests van localhost naar localhost:3306 weggestuurd naar oudemysqlserver:3306 ?
Heb de hele avond wat zitten googlen, het enige wat ik tegenkwam was dat ik met OUTPUT zou moeten werken ipv PREROUTING, wat me op zich wel logisch lijkt. Echter alleen maar voorbeelden met die REDIRECT waar poortje 1234 naar poort 8076 wordt geforward op dezelfde host, iets wat ik niet zie zitten in mijn geval.