Reverse Proxy on Windows Home Server

Sep 20, 2009 at 6:31 PM

I am trying to expose my HomeSeer - commercial home automation software - site on the "Remote" sites of my Windows Home Server. HomeSeer is running on port 81 of the home server. I have done the following:

  1. Created a virtual directory at c:\inetpub\remote\homeseer.
  2. Added wildcard support as per the URL Rewriter reademe.txt
  3. Updated WebSites.xml to point to a virtual directory at c:\inetpub\remote\homeseer.
  4. Added the managed fusion files to the bin of the virtual directory
  5. Added a rules file with the following content:

RewriteEngine on
RewriteRule ^/Remote/homeseer http://localhost:81/ [P,NC]

I've tried various incarnations of the rewrite rule and the best i seem to be able to manage is a 404 error

  Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /start/start.aspx

Server Error in '/' Application.

The resource cannot be found.

 

I'm very new to this, so please be patient. I did try turning on the RewriteLog, but to no avail. Nothing ever shows up in the file. I'm not sure what to try next. Has anyone else done this?

Thanks!

CSH

Coordinator
Sep 20, 2009 at 8:11 PM

It sounds like it is looking for /start/start.aspx on your /Remote/homeseer site.  Does this exist?

Sep 20, 2009 at 11:33 PM

Hmm. The start/start.aspx page is on the site that's at http://localhost:81. It's not mirrored in the virtual directory. Should I mirror it there as well? Would a different rewrite rule eliminate this problem? Or maybe i need a set of rewrite rules?

I'm slowly starting to understand some of this, but it hasn't fully "clicked" yet.

Thanks,
CSH

Sep 25, 2009 at 11:39 PM

Anyone have ideas on this? It looks like the site that I'm trying to proxy has links relative to the site root. So, I end up seeing https://www.myhomeserver.com/start/start.aspx when what I want is https://www.myhomeserver.com/remote/start/start.aspx and for this to be proxied to http://localhost:81/start/start.aspx. Is my thinking even close to correct? An I going to have to put rules in my site root? I am so confused... :(

Thanks!

Oct 13, 2009 at 9:35 PM

I am back to looking at this again. If anyone out there has ideas, please let me know. My goal is to expose my Homeseer site to users who are logged in to my Windows Home Server. I am new to the Managed Fusion URL Rewriter and Apache Mod Rewrite, so I'm not even sure if I have the correct approach. If there are other Homeseer users out there who have done this, please share :).

I think the problem is the URLs that HomeSeer uses are relative to the site root. Could that be the case? Heeelllpppp. Heeellppp!

CSH

Coordinator
Oct 14, 2009 at 1:49 AM

Please post everything you can about this.  Your current web.config, your current rewriter rules, and everything you know about HomeSeer, and I will try to help you.  Also if possible post a couple of the links as they appear in the HTML.

Oct 23, 2009 at 11:17 PM

I was out of town for a bit, so I didn't get time to reply until today. Here's what I have.

HomeSeer is running on port 81 on my Windows Home Server.

I created a virtual directory called "homeseer" off of the Windows Home Server "Remote" direcotry and added wildcard support according to URL Rewriter directions. That's where I put my Web.Config and URl Rewriter files.


Web.Config
<?xml version="1.0"?>
<configuration>
   <configSections>
      <section name="managedFusion.rewriter" type="ManagedFusion.Rewriter.Configuration.ManagedFusionRewriterSectionGroup"/>
   </configSections>
  <managedFusion.rewriter xmlns="http://managedfusion.com/xsd/managedFusion/rewriter"/>

  <system.web>
    <machineKey validationKey="removed"
                decryptionKey="removed"
                validation="SHA1" decryption="AES" />

    <authentication mode="Forms">
      <forms name="RemotePortalAuth" loginUrl="..\logon.aspx" protection="All" path="/" timeout="12000" requireSSL="false"/>
    </authentication>

    <httpModules>
      <add name="RewriterModule" type="ManagedFusion.Rewriter.RewriterModule, ManagedFusion.Rewriter"/>
    </httpModules>

  </system.web>
</configuration>


ManagedFusion.Rewriter.txt
RewriteEngine on
RewriteRule ^/Remote/homeseer http://localhost:81 [P,NC]
RewriteRule ^/Remote/homeseer/start/start.aspx http://localhost:81/start/start.aspx [P,NC]
RewriteRule ^/Remote/start/(.*) http://localhost:81/start/$1 [P,NC]


When I browse to the site, I see the text from the HTML, but links are broken. The following URLs don't resolve.

Image URL
https://myservername/images/HomeSeer/note.gif

Hyperlink URL
https://myservername/remote/deva7950&edit=1

It looks like HomeSeer URLs are relative to the root of the site. Is this enough information? What else would be helpful.

Thanks very much!
Stacy

Coordinator
Oct 25, 2009 at 9:31 PM

Hi Stacy,

The Image and Hyperlink you referenced above, aren't showing up because they are not accounted for in your rules.  If you include them in your rules, it might fix the issue.  However sites that use relative URLs, like the one you referenced are notoriously difficult to proxy, but not impossible.  You just need to account for all the situations in the rewriter rules.

Hope this helps,

Nick

Jan 7, 2010 at 6:12 PM

Hello to all

I come to this topic because is related with my question.

The question is i have a windows home server visible on the internet with "https://myhomeserver.homeserver.com" ok, and I have other server linux fedora with a site access from internal network from "htt://site.intrenaldomainnetwork.com".

I want to put the site "http://site.intrenaldomainnetwork.com" visible from the internet over the homeserver domain like this "https://myhomeserver.homeserver.com/site" the site inside the linux machine is written in PHP format.

The servers have ip address on the same network. example: 192.168.2.20 and 192.168.2.21

Can i do this with this software  "URL Rewriter and Reverse Proxy"

 

best regards

Coordinator
Jan 8, 2010 at 5:09 PM

Hi Kaneco,

You don't need to hijack a thread to get your question answered.  Just start a new question and point it to this one.

But to answer your question, you would use the following rule.

RewriteRule /site/(.*)  http://site.internal....com/$1 [NC,P]

Jan 8, 2010 at 6:20 PM

I don't want  hijack the thread to get my question answered sorry if i transmitted this idea.


 To avoid misunderstanding  i started my msg with "I come to this topic because is related with my question".


Thanks a lot for your help in future I go use a new topic to put my question about this.


Best regards