Category Archives: arr

php variables not being being passed through iis-arr server url rewrite

I have an IIS-ARR server which provides url rewrite capabilities to host many sites behind a single public IP. I use multiple ports inside the domain, but only 80/443 from the public. The IIS server has individual bindings to the seperate server farms, so a user doesn't have to remember sub.domain.com:12345/page/subpage, and instead only has to remember sub.domain.com/page/subpage.

This functionality works very well from the internet, and to make it work well from within the domain, I have dns for these sites resolve to the internal ARR IP address, to get routed properly. My problem, at this time, is that I have a new Synology Cloud server, RackStation to be exact, and one of the third party applications being hosted on it uses php. ALL of the php pages and forms work correctly, for as long as the php isn't passing variables.

For example, sub.domain.com/mypage.php?id=test will take me to sub.domain.com/mypage.php, which will show me the normal php page, without the variable being used. Perhaps the page has another button on it that opens up a different form under the same php page, making the variable something like /mypage.php?id=differenttest. Again, in the browser bar, the page looks to have gone to correct address, but the php page simply reloads to the same normal page that would be seen without any variables.

The only way I have found this to work correctly, is by bypassing the ARR server via DNS resolving to the actual server, and the pages work perfectly.

My ARR rules are simply rewrites that look for the cname of the domain, and route to the server farm, with the suffix being {R:0}. For example:

{HTTPS} = on

{HTTPS_HOST} = cname.*

rewrite -> RoutetoServerFarm https://cname.domain.com {R:0}

I have spent countless hours scouring this and every other site that might hold a clue, but to no avail. Hopefully, someone can shed some light on to what I'm doing incorrectly or simply just not doing.

Thank you!

IIS ARR to Apache renders 502 error

In one of my servers, I am serving applications via IIS. I have a bunch of .NET apps and 2 instances of Apache running, one at 9090 and another at 8443. I have installed ARR module in IIS and am serving 9090's application successfully via IIS ARR.

But, when I serve 8443's application, I see below error

502 error from IIS

I have a SSL certificate installed on IIS and when I hit https://localhost:8443/app1, IE warns me about the certificate and then lets me in. https://dnsname.domain.com/app1 is what I am trying to point to this 8443 site, but IIS doesn't like it for some reason

I've also tried to set the registry HKLM\SOFTWARE\Microsoft\IIS Extensions\Application Request Routing\Parameters (as explained here), but it doesn't fix the problem

What am I doing wrong here?

Apache & IIS 7.5 as reverse proxy incorrect response header value

On a Windows 2008 R2 IIS 7.5 with an ARR and URL Rewrite running on port 80th On the same server Apache on port 10000 is running (had not taken 8080 by design). IIS forwards all inquiry going on / cp1 on to Apache (reverse proxy).

On the Apache run by many Ajax requests to the database. Should such requests more than 5 seconds, I get the following message from IIS:

Fehlerzusammenfassung
HTTP-Fehler 502.3 - Bad Gateway
Der Server lieferte eine ungültige oder unbekannte Rückmeldung.
Ausführliche Fehlerinformationen
Modul   ApplicationRequestRouting
Benachrichtigung    ExecuteRequestHandler
Handler ApplicationRequestRoutingHandler
Fehlercode  0x80072f78
Angeforderte URL    http://win2008r2iis:80/cp1/index.pl
Physikalischer Pfad C:\inetpub\wwwroot\cp1\index.pl
Anmeldemethode  Anonym
Angemeldeter Benutzer   Anonym

The response header indicates to me now as follows:

Pragma: no-cache
Date: Thu, 08 Jan 2015 10:27:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ARR/2.5, ASP.NET
Content-Type: text/html; charset=utf-8
Cache-Control: private
Content-Disposition: inline;
Keep-Alive: timeout=5, max=100
Content-Length: 5323
Expires: Tue, 1 Jan 1980 12:00:00 GMT

The problem is stated in the Keep-Alive header 5 seconds. According to the web.config but 1 minute are set as timeout:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <remove name="Perl" />
            <remove name="ActiveState Perl for *.pl" />
            <remove name="PerlEx" />
        </handlers>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
        </staticContent>
        <httpProtocol allowKeepAlive="true" />
    </system.webServer>
   <system.applicationHost>
      <webLimits connectionTimeout="00:01:00" />
   </system.applicationHost>
</configuration>

In the ARR cache settings is entered as the value is 120 seconds.