Então, criei um proxy reverso no servidor abc.com, onde xyz.com/users/sign_in fará proxy para "/ users / sign_in", de modo que, no url, ele mostre abc.com/users/sign_in. E isso funcionou bem no Ubuntu e no Apache2. Depois de ativar o proxy no Ubuntu, eu configurei meu host virtual assim:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName abc.com
ServerAlias www.abc.com
DocumentRoot /var/www/vhosts/abc.com/public_html
<Directory /var/www/vhosts/abc.com/public_html/>
Options FollowSymLinks MultiViews
AllowOverride All
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
ProxyPass /users/sign_in http://xyz.com/users/sign_in
ProxyPassReverse /users/sign_in http://xyz.com/users/sign_in
ErrorLog /var/log/apache2/abc.com-error.log
LogLevel warn
CustomLog /var/log/apache2/abc.com-access.log combined
</VirtualHost>
Agora aqui está o problema. / users / sign_in faz uma solicitação de postagem no outro servidor (o servidor xyz), ou seja, é um formulário real que é enviado e o código no outro servidor redireciona o usuário para a raiz do site. Aqui está o log do outro servidor:
Started POST "/users/sign_in" for IPADDRESS at 2012-02-22 14:59:13 -0500
Processing by Users::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "remote"=>"true", "commit"=>"Login", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "subdomain"=>"", "remember_me"=>"0"}}
Redirected to http://abc.com/
Completed 302 Found in 110ms
Então, isso é realmente bom, parece na superfície. O outro servidor respondeu, assinou o usuário e redirecionou-o para o URL raiz. O problema é que eles não são redirecionados para a URL raiz: xyz.com (que contém o código do aplicativo que eu quero que eles vejam). Em vez disso, eles são redirecionados para o abc.com, que é o outro servidor.
Mas se eu adicionar um proxy para xyz.com além de xyz.com/users/sign_in no servidor abc.com, então terei um grande problema. Como o navegador saberá quando o usuário deseja ver abc.com (o conteúdo real do site) e xyz.com (o aplicativo que eu quero carregar depois que o / users / sign_in é invocado).
Estou completamente empenhado nisso e aberto a sugestões.