Re: [Resin-interest] Rewriting hostnames across webapps?

2014-01-17 Thread Paul Cowan

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?

2014-01-17 Thread Rick Mann

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?

2014-01-17 Thread Chris Pratt
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?

2014-01-17 Thread Rick Mann
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