Re: [Resin-interest] Rewriting hostnames across webapps?
On Jan 16, 2014, at 4:32 PM, Rick Mann rm...@latencyzero.com wrote: I'm trying to update a virtual server that runs a handful of webapps in Resin. The old machine was tycho.latencyzero.com and a bunch of DNS entries point to it. The web apps are configured to respond to those varying hostnames. The new machine temporarily has the name stage.latencyzero.com. I copied everything from the old machine to the new, including the resin config file. Obviously, I can't just go to stage.latencyzero.com, because resin has no idea which webapp I really want. Is there any way to configure resin to rewrite a request with a host like foo.bar.latencyzero.com.stage.latencyzero.com into a request for the webapp that responds to foo.bar.latencyzero.com, while keeping the actual hostname intact for the purposes of rendering links in the pages, etc.? Hi Rick, I'm not exactly understanding what you want to do, but it sounds like I a similar situation I had on one of my sites. This configuration below is what I used. The new real host is listed first in resin.xml, then the default host id= with host-alias * will catch all, and the redirect regex will redirect to the new site while appending the requested URI. host id=foo root-directory=hosts/foo host-alias-regexp.*foo.com/host-alias-regexp … /host host id= root-directory=hosts/default host-alias*/host-alias web-app id=/ root-directory=webapps/ROOT resin:Redirect regexp=(.*) target=http://www.foo.com$1/ resin:Redirect regexp=(.*) target=https://www.foo.com$1; resin:IfSecure value=true/ /resin:Redirect /web-app /host Hope this helps, -Paul Is there another technique to make this kind of migration easier? I did manually edit resin.xml for one of my webapps to respond to comics.stage.roderickmann.org, and created a DNS entry to match. But it can be tedious to change them all (not too bad, really, just looking for a nicer way). Eventually, all the stage nonesense will go away and the new machine will completely replace the old and the old will go away. -- Rick ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest === Paul Cowan, Software Engineer Caucho Technology co...@caucho.com http://blog.caucho.com http://twitter.com/cauchoresin ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Rewriting hostnames across webapps?
On Jan 17, 2014, at 06:05 , Paul Cowan co...@caucho.com wrote: On Jan 16, 2014, at 4:32 PM, Rick Mann rm...@latencyzero.com wrote: I'm trying to update a virtual server that runs a handful of webapps in Resin. The old machine was tycho.latencyzero.com and a bunch of DNS entries point to it. The web apps are configured to respond to those varying hostnames. The new machine temporarily has the name stage.latencyzero.com. I copied everything from the old machine to the new, including the resin config file. Obviously, I can't just go to stage.latencyzero.com, because resin has no idea which webapp I really want. Is there any way to configure resin to rewrite a request with a host like foo.bar.latencyzero.com.stage.latencyzero.com into a request for the webapp that responds to foo.bar.latencyzero.com, while keeping the actual hostname intact for the purposes of rendering links in the pages, etc.? Hi Rick, I'm not exactly understanding what you want to do, but it sounds like I a similar situation I had on one of my sites. This configuration below is what I used. The new real host is listed first in resin.xml, then the default host id= with host-alias * will catch all, and the redirect regex will redirect to the new site while appending the requested URI. host id=foo root-directory=hosts/foo host-alias-regexp.*foo.com/host-alias-regexp … /host host id= root-directory=hosts/default host-alias*/host-alias web-app id=/ root-directory=webapps/ROOT resin:Redirect regexp=(.*) target=http://www.foo.com$1/ resin:Redirect regexp=(.*) target=https://www.foo.com$1; resin:IfSecure value=true/ /resin:Redirect /web-app /host Hope this helps, Hmm, not sure. Basically, I have entries in resin.xml on machine tycho.latencyzero.com like this: host host-name=latencyzero.com root-directory=/lz/var/www/com/latencyzero host-alias-regexp^tycho.latencyzero.com[\.]?$/host-alias-regexp host-alias-regexp^(www\.)?latencyzero.com[\.]?$/host-alias-regexp web-app id=/ document-directory=www/webapp /host host id=comics\.roderickmann\.org\.? root-directory=/lz/var/www/org/roderickmann/comics host-namecomics.roderickmann.org/host-name web-app id=/ document-directory=./webapp /host host host-name=www.roderickmann.org root-directory=/lz/var/www/org/roderickmann/www host-alias-regexp^(www\.)?roderickmann.org[\.]?$/host-alias-regexp host-alias-regexp^(www\.)?rickmann.org[\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host host host-name=mgfb.roderickmann.org root-directory=/lz/var/www/org/roderickmann/mgfb host-alias-regexp^mgfb\.roderickmann.org[\.]?$/host-alias-regexp host-alias-regexp^blog\.roderickmann.org[\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host I have DNS entries for all of the above that are all CNAMEs to tycho.latencyzero.com. I want to move all of those apps to a new machine (upgrading hardware and OS), but I want to test it first. The machine is called stage.latencyzero.com, and I need to make new DNS entries for each webapp (perhaps adding stage to each name, or something). The most straightforward thing would be simply to modify each name to add stage to them, but then when I decide to make the new machine permanent, and change all the old DNS entries to point to the new IP address, I'd have to modify the entries. Or I could simply add host-aliases for all the new names. But I was hoping there'd be a trick so that I only have to modify one line, and each of the host entries would pick it up. I realize that might require me to modify all the entries once (as you did with your redirects). But once I do this once, it should work for similar changes in the future. One thing I need to preserve: if I'm hitting one of my webapps through the new name (e.g. stage.mgfb.roderickmann.org or whatever), when code in the webapp uses the host name to render URIs, it needs to use that same hostname, so that links point to the right place, and not back to the old instance. All this discussion, of course, has taken longer than it would have to simply modify the entries a couple times, but I was curious. Thanks, Rick signature.asc Description: Message signed with OpenPGP using GPGMail ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Rewriting hostnames across webapps?
Wouldn't adding (stage\.)? to each host-alias-regexp and changing the host-name to regexp allow it to work as you want it? For example: host regexp=(stage\.)?latencyzero.com root-directory=/lz/var/www/ com/latencyzero host-alias-regexp^tycho.(stage\.)?latencyzero.com[\.]?$/host- alias-regexp host-alias-regexp^(www\.)?(stage\.)?latencyzero.com[\.]?$/host- alias-regexp web-app id=/ document-directory=www/webapp /host On Fri, Jan 17, 2014 at 3:18 PM, Rick Mann rm...@latencyzero.com wrote: On Jan 17, 2014, at 06:05 , Paul Cowan co...@caucho.com wrote: On Jan 16, 2014, at 4:32 PM, Rick Mann rm...@latencyzero.com wrote: I'm trying to update a virtual server that runs a handful of webapps in Resin. The old machine was tycho.latencyzero.com and a bunch of DNS entries point to it. The web apps are configured to respond to those varying hostnames. The new machine temporarily has the name stage.latencyzero.com. I copied everything from the old machine to the new, including the resin config file. Obviously, I can't just go to stage.latencyzero.com, because resin has no idea which webapp I really want. Is there any way to configure resin to rewrite a request with a host like foo.bar.latencyzero.com.stage.latencyzero.com into a request for the webapp that responds to foo.bar.latencyzero.com, while keeping the actual hostname intact for the purposes of rendering links in the pages, etc.? Hi Rick, I'm not exactly understanding what you want to do, but it sounds like I a similar situation I had on one of my sites. This configuration below is what I used. The new real host is listed first in resin.xml, then the default host id= with host-alias * will catch all, and the redirect regex will redirect to the new site while appending the requested URI. host id=foo root-directory=hosts/foo host-alias-regexp.*foo.com/host-alias-regexp … /host host id= root-directory=hosts/default host-alias*/host-alias web-app id=/ root-directory=webapps/ROOT resin:Redirect regexp=(.*) target=http://www.foo.com$1/ resin:Redirect regexp=(.*) target=https://www.foo.com$1; resin:IfSecure value=true/ /resin:Redirect /web-app /host Hope this helps, Hmm, not sure. Basically, I have entries in resin.xml on machine tycho.latencyzero.com like this: host host-name=latencyzero.com root-directory=/lz/var/www/com/latencyzero host-alias-regexp^tycho.latencyzero.com [\.]?$/host-alias-regexp host-alias-regexp^(www\.)?latencyzero.com [\.]?$/host-alias-regexp web-app id=/ document-directory=www/webapp /host host id=comics\.roderickmann\.org\.? root-directory=/lz/var/www/org/roderickmann/comics host-namecomics.roderickmann.org/host-name web-app id=/ document-directory=./webapp /host host host-name=www.roderickmann.org root-directory=/lz/var/www/org/roderickmann/www host-alias-regexp^(www\.)?roderickmann.org [\.]?$/host-alias-regexp host-alias-regexp^(www\.)?rickmann.org[\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host host host-name=mgfb.roderickmann.org root-directory=/lz/var/www/org/roderickmann/mgfb host-alias-regexp^mgfb\.roderickmann.org [\.]?$/host-alias-regexp host-alias-regexp^blog\.roderickmann.org [\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host I have DNS entries for all of the above that are all CNAMEs to tycho.latencyzero.com. I want to move all of those apps to a new machine (upgrading hardware and OS), but I want to test it first. The machine is called stage.latencyzero.com, and I need to make new DNS entries for each webapp (perhaps adding stage to each name, or something). The most straightforward thing would be simply to modify each name to add stage to them, but then when I decide to make the new machine permanent, and change all the old DNS entries to point to the new IP address, I'd have to modify the entries. Or I could simply add host-aliases for all the new names. But I was hoping there'd be a trick so that I only have to modify one line, and each of the host entries would pick it up. I realize that might require me to modify all the entries once (as you did with your redirects). But once I do this once, it should work for similar changes in the future. One thing I need to preserve: if I'm hitting one of my webapps through the new name (e.g. stage.mgfb.roderickmann.org or whatever), when code in the webapp uses the host name to render URIs, it needs to use that same hostname, so that links point to the right place, and not back to the old instance. All this discussion, of course, has taken longer than it would have to simply modify the entries a couple times, but I was curious. Thanks, Rick
Re: [Resin-interest] Rewriting hostnames across webapps?
Yep, I think it would. The problem is, what if I want a more complex transformation next time? Or just a different string other than stage inserted? It's okay, this works well enough for me now. On Jan 17, 2014, at 15:24 , Chris Pratt thechrispr...@gmail.com wrote: Wouldn't adding (stage\.)? to each host-alias-regexp and changing the host-name to regexp allow it to work as you want it? For example: host regexp=(stage\.)?latencyzero.com root-directory=/lz/var/www/com/latencyzero host-alias-regexp^tycho.(stage\.)?latencyzero.com[\.]?$/host-alias-regexp host-alias-regexp^(www\.)?(stage\.)?latencyzero.com[\.]?$/host-alias-regexp web-app id=/ document-directory=www/webapp /host On Fri, Jan 17, 2014 at 3:18 PM, Rick Mann rm...@latencyzero.com wrote: On Jan 17, 2014, at 06:05 , Paul Cowan co...@caucho.com wrote: On Jan 16, 2014, at 4:32 PM, Rick Mann rm...@latencyzero.com wrote: I'm trying to update a virtual server that runs a handful of webapps in Resin. The old machine was tycho.latencyzero.com and a bunch of DNS entries point to it. The web apps are configured to respond to those varying hostnames. The new machine temporarily has the name stage.latencyzero.com. I copied everything from the old machine to the new, including the resin config file. Obviously, I can't just go to stage.latencyzero.com, because resin has no idea which webapp I really want. Is there any way to configure resin to rewrite a request with a host like foo.bar.latencyzero.com.stage.latencyzero.com into a request for the webapp that responds to foo.bar.latencyzero.com, while keeping the actual hostname intact for the purposes of rendering links in the pages, etc.? Hi Rick, I'm not exactly understanding what you want to do, but it sounds like I a similar situation I had on one of my sites. This configuration below is what I used. The new real host is listed first in resin.xml, then the default host id= with host-alias * will catch all, and the redirect regex will redirect to the new site while appending the requested URI. host id=foo root-directory=hosts/foo host-alias-regexp.*foo.com/host-alias-regexp … /host host id= root-directory=hosts/default host-alias*/host-alias web-app id=/ root-directory=webapps/ROOT resin:Redirect regexp=(.*) target=http://www.foo.com$1/ resin:Redirect regexp=(.*) target=https://www.foo.com$1; resin:IfSecure value=true/ /resin:Redirect /web-app /host Hope this helps, Hmm, not sure. Basically, I have entries in resin.xml on machine tycho.latencyzero.com like this: host host-name=latencyzero.com root-directory=/lz/var/www/com/latencyzero host-alias-regexp^tycho.latencyzero.com[\.]?$/host-alias-regexp host-alias-regexp^(www\.)?latencyzero.com[\.]?$/host-alias-regexp web-app id=/ document-directory=www/webapp /host host id=comics\.roderickmann\.org\.? root-directory=/lz/var/www/org/roderickmann/comics host-namecomics.roderickmann.org/host-name web-app id=/ document-directory=./webapp /host host host-name=www.roderickmann.org root-directory=/lz/var/www/org/roderickmann/www host-alias-regexp^(www\.)?roderickmann.org[\.]?$/host-alias-regexp host-alias-regexp^(www\.)?rickmann.org[\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host host host-name=mgfb.roderickmann.org root-directory=/lz/var/www/org/roderickmann/mgfb host-alias-regexp^mgfb\.roderickmann.org[\.]?$/host-alias-regexp host-alias-regexp^blog\.roderickmann.org[\.]?$/host-alias-regexp web-app id=/ document-directory=./webapp /host I have DNS entries for all of the above that are all CNAMEs to tycho.latencyzero.com. I want to move all of those apps to a new machine (upgrading hardware and OS), but I want to test it first. The machine is called stage.latencyzero.com, and I need to make new DNS entries for each webapp (perhaps adding stage to each name, or something). The most straightforward thing would be simply to modify each name to add stage to them, but then when I decide to make the new machine permanent, and change all the old DNS entries to point to the new IP address, I'd have to modify the entries. Or I could simply add host-aliases for all the new names. But I was hoping there'd be a trick so that I only have to modify one line, and each of the host entries would pick it up. I realize that might require me to modify all the entries once (as you did with your redirects). But once I do this once, it should work for similar changes in the future. One thing I need to preserve: if I'm hitting one of my webapps through the new name (e.g. stage.mgfb.roderickmann.org or whatever), when code in the webapp