Quantcast
Channel: Application Request Routing (ARR)
Viewing all 739 articles
Browse latest View live

reverse proxy with default loadbalance rule


Can Fail over be possible in IIS while using ARR?

$
0
0

Hi All,

Here is scenerio:

I have implemented Server farm(ARR) on Server1.

Then I have created websiteA on Server 2 and websiteB on Server 3.

The Server farm works perfectly. The problem comes when I stop the websiteA on Server2 and then hit Server farm on server 1 it shows me error below.

==============================================================

<div id="content"> <div class="content-container">

HTTP Error 502.3 - Bad Gateway

A connection with the server could not be established

</div> <div class="content-container">

Most likely causes:

  • The CGI application did not return a valid set of HTTP errors.
  • A server acting as a proxy or gateway was unable to process the request due to an error in a parent gateway.

</div> <div class="content-container">

Things you can try:

  • Use DebugDiag to troubleshoot the CGI application.
  • Determine if a proxy or gateway is responsible for this error.

</div> <div class="content-container">

Detailed Error Information:

<div id="details-left">
Module   ApplicationRequestRouting
Notification   ExecuteRequestHandler
Handler   ApplicationRequestRoutingHandler
Error Code   0x80072efd
</div> <div id="details-right">
Requested URL   http://localhost:1000/Home/Home/Logout?ModuleID=21700
Physical Path   C:\inetpub\wwwroot\Home\Home\Logout
Logon Method   Anonymous
Logon User   Anonymous
</div>

</div> <div class="content-container">

More Information:

This error occurs when a CGI application does not return a valid set of HTTP headers, or when a proxy or gateway was unable to send the request to a parent gateway. You may need to get a network trace or contact the proxy server administrator, if it is not a CGI problem.

View more information »

</div> </div>

==============================================================

this error is shown on first time, all subsequent request is handle properly by ARR, so is there any possibility that if server2 is down or stopped request automatically goes to Server3 without showing error.

Thanks

Configure Request Header Authentication in Nexus with IIS

$
0
0

Hi all,

I would like to configure my IIS instance to work as a reverse proxy. It should handle the authentication and proxy the calls to the instance of Nexus with in addition of a header which will contain the authenticated username. This technique is described here at Sonatype documentioion site http://books.sonatype.com/nexus-book/3.0/reference/security.html#remote-user-token

I tried several things in guides I found on Google in regard to IIS and reverse proxy, using ARR and URL Rewrite module. However I was unsuccessful. Achieving the desired in Apache is quite simple, thus I would expect it should be as simple in IIS. A guide on how to set it up in Apache is here, https://support.sonatype.com/hc/en-us/articles/214942368-How-to-Configure-Request-Header-Authentication-in-Nexus-with-Apache. I also tried setting up Apache and it works as expected.

Is there anyone who can indicate me the right path in order to setup my IIS to achieve the same?

Thanks

How to change ARR config

$
0
0

on same applicaion server is 192.168.40.88:8088.

the compnay public ARR Server is 192.168.40.10, the ARR master create ARR Farm [add my applicationwww.mydomain.com(AAA->192.168.40.10)]  to my application Server 192.168.40.88:8088.

then, i visit www.mydomain.com can show my application,but the content Url is start byhttp://www.mydomain.com:8088/XXXXX.

now i install ARR in my location machine[192.168.30.33],create arr farm www.b.com  [host file create 127.0.0.1  www.b.com], add the same server 192.168.40.88:8088. and i viewwww.b.com , the content url is correct, http://www.b.com/XXXX, not 8088 port.

why? which config could influence this prot?

About ARR works under IIS 10

$
0
0

Before, I installed the ARR helper on windows server 2012 R2 and IIS 8.5. And It'll change the LB ip address with X-Forwarded-For from the header.

But For server 2016 and IIS 10, I installed the ARR 3.0 and it doesn't do this any more.

Is there any setting I need to do to make it works?

How hide some values from UrlRouting querystring?

IIS Url Rewrite ARR issue

$
0
0

I configured IIS as a reverse proxy using Url Rewrite module and ARR 3.
I have a public domain which redirect to my application on localhost.
It's working fine excepted when the application redirect to another host.
ie: redirecting to "https://www.google.com/search?q=url+rewrite+iis+arr+3"
My browser shows "http://localhost/search?q=url+rewrite+iis+arr+3"
which fails

The hosted application is using Asp Net Mvc with framework.net 4.5.
The application is working with integrated pipeline in IIS application pool configuration.

Using Fiddler, I can see the following trace on redirect :

    HTTP/1.1 302 Found
    Cache-Control: private
    Content-Length: 350
    Content-Type: text/html; charset=utf-8
    Location: http://localhost/search?q=url+rewrite+iis+arr+3
    Server: Microsoft-IIS/7.5
    X-Powered-By: ARR/3.0
    X-Powered-By: ASP.NET
    Date: Wed, 02 Nov 2016 16:39:18 GMT
    
    <html><head><title>Object moved</title></head><body>
    <h2>Object moved to <a href="https://www.google.com/search?q=url+rewrite+iis+arr+3">here</a>.</h2>
    </body></html>

My IIS config :

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="ReverseProxyInboundRule" stopProcessing="true">
                        <match url="(.*)" />
                        <action type="Rewrite" url="http://localhost/{R:1}" />
                    </rule>
                </rules>
                <outboundRules>
                    <rule name="ReverseProxyOutboundRule1" preCondition="IsRedirection" stopProcessing="true">
                        <match filterByTags="A" pattern="^http(.*)" negate="false" />
                        <action type="None" />
                    </rule>
                    <preConditions>
                        <preCondition name="IsRedirection">
                            <add input="{RESPONSE_STATUS}" pattern="3[0-9][0-9]" />
                        </preCondition>
                    </preConditions>
                </outboundRules>
            </rewrite>
        </system.webServer>
    </configuration>

Best regards

Tony

Server Essentials 2016 with Exchange 2016 and only one IP address.

$
0
0

Coming from this page on how to integrate essentials server and exchange server with only 1 IP address.

https://technet.microsoft.com/en-us/library/jj200172(v=ws.11).aspx

Stuck on step 5 of configuring a remote proxy. 

5. Download KB2732764 for ARR 2.5, and then install the update on the server that is running Windows Server Essentials.

The requestrouter_amd64_KB2732764.msi file does not install onto Server 2016 Essentials.  Now What? 

Is KB2732764 required on Essentials 2016? is AAR even going to work?


AARConfig Essentials Exchange integration .local domain

$
0
0

Two questions or thoughts I need help with please.
I am held up on step 7 and 8 in the ARRConfig process located here:

https://technet.microsoft.com/en-us/library/jj200172(v=ws.11).aspx

ARRConfig config –cert “c:\temp\certificate.pfx” –hostnames “exchange.domain.com”–targetserver “exchange”
Or is it .local because I have a .local domain? (exchange.domain.local is my exchange server)
ARRConfig config –cert “c:\temp\certificate.pfx” –hostnames “exchange.domain.local”–targetserver “exchange”

I am trying to get the Exchange 2016 and Essentials 2016 integrated with 1 internet connection
Virtual directories running on exchange will hit exchange.domain.com
Essentials services will hit office.domain.com


Note

The host names that you provide must be contained in the SSL certificate that you purchased for Exchange Server.
If you have multiple host names, use a comma (,) to separate them.

I created a self signed cert in Exchange with the following SAN's
DNS Name=exchange.domain.com
DNS Name=exchange
DNS Name=AutoDiscover.domain.local
DNS Name=AutoDiscover.domain.com
DNS Name=DOMAIN.local
DNS Name=domain.com
DNS Name=exchange.domain.local

Does the second line mean I have to match the host names (all of the SAN's)in my cert with the Powershell command?
ARRConfig config –cert “c:\temp\certificate.pfx” –hostnames "exchange.domain.local”,"exchange","AutoDiscover.domain.local","AutoDiscover.domain.com", "DOMAIN.local", "domain.com", "exchange.domain.local"–targetserver “exchange”

I appreciate the assistance!
Thank You,

App pool crashing due to security hardening

$
0
0

One of our customers has hardened their IIS ARR server and our requests to that server are now crashing the app pool. we did a debug of w3wp to see how it fails, and we see an access denied error, but we can't pinpoint the resource it is trying to access.

Can someone look at the code for Win2k12 R2 IIS server and tell us what line number 1735 for file wpipm.cxx is trying to access?

here's the full trace.

Trace from attaching WinDbg to the W3WP IIS worker process whenever it started and up to the point of the crash
----
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: c:\windows\system32\inetsrv\w3wp.exe -ap "ExternalBindings" -v "v4.0" -l "webengine4.dll" -a \\.\pipe\iisipm5f1bad4f-514c-4d13-b3e0-59c49972c7c8 -h "C:\inetpub\temp\apppools\ExternalBindings\ExternalBindings.config" -w "" -m 0 -t 20 -ta 0
Symbol search path is: srv*
Executable search path is:
ModLoad: 00007ff7`63880000 00007ff7`6388a000   w3wp.exe
ModLoad: 00007ffa`0a650000 00007ffa`0a7fd000   ntdll.dll
ModLoad: 00007ffa`07d40000 00007ffa`07e7e000   C:\Windows\system32\KERNEL32.DLL
ModLoad: 00007ffa`07b80000 00007ffa`07c95000   C:\Windows\system32\KERNELBASE.dll
ModLoad: 00007ffa`09e90000 00007ffa`09f3a000   C:\Windows\system32\ADVAPI32.dll
ModLoad: 00007ffa`0a280000 00007ffa`0a32a000   C:\Windows\system32\msvcrt.dll
ModLoad: 00007ffa`08180000 00007ffa`08391000   C:\Windows\SYSTEM32\combase.dll
ModLoad: 00007ffa`02af0000 00007ffa`02b3e000   c:\windows\system32\inetsrv\iisutil.dll
ModLoad: 00007ffa`0a330000 00007ffa`0a389000   C:\Windows\SYSTEM32\sechost.dll
ModLoad: 00007ffa`0a510000 00007ffa`0a650000   C:\Windows\system32\RPCRT4.dll
ModLoad: 00007ffa`09de0000 00007ffa`09e3a000   C:\Windows\system32\WS2_32.dll
ModLoad: 00007ffa`07ca0000 00007ffa`07cce000   C:\Windows\system32\SspiCli.dll
ModLoad: 00007ffa`06c80000 00007ffa`06c8e000   C:\Windows\SYSTEM32\pcwum.DLL
ModLoad: 00007ffa`09e40000 00007ffa`09e49000   C:\Windows\system32\NSI.dll
ModLoad: 00007ffa`06430000 00007ffa`0643b000   C:\Windows\SYSTEM32\kernel.appcore.dll
ModLoad: 00007ffa`075e0000 00007ffa`075eb000   C:\Windows\SYSTEM32\CRYPTBASE.dll
ModLoad: 00007ffa`07570000 00007ffa`075d3000   C:\Windows\SYSTEM32\bcryptPrimitives.dll
ModLoad: 00007ffa`03c70000 00007ffa`03ca2000   C:\Windows\SYSTEM32\ntmarta.dll
ModLoad: 00007ffa`0a100000 00007ffa`0a277000   C:\Windows\SYSTEM32\user32.dll
ModLoad: 00007ffa`0a390000 00007ffa`0a4df000   C:\Windows\system32\GDI32.dll
ModLoad: 00007ff9`e9060000 00007ff9`e9076000   c:\windows\system32\inetsrv\w3wphost.dll
ModLoad: 00007ffa`09a70000 00007ffa`09b36000   C:\Windows\system32\OLEAUT32.dll
ModLoad: 00007ffa`02a50000 00007ffa`02ad2000   c:\windows\system32\inetsrv\nativerd.dll
ModLoad: 00007ffa`04250000 00007ffa`04289000   C:\Windows\SYSTEM32\XmlLite.dll
ModLoad: 00007ffa`04300000 00007ffa`0430b000   C:\Windows\SYSTEM32\ktmw32.dll
ModLoad: 00007ffa`02850000 00007ffa`02889000   c:\windows\system32\inetsrv\IISRES.DLL
ModLoad: 00007ffa`07100000 00007ffa`07120000   C:\Windows\SYSTEM32\CRYPTSP.dll
ModLoad: 00007ffa`06c40000 00007ffa`06c76000   C:\Windows\system32\rsaenh.dll
ModLoad: 00007ffa`07260000 00007ffa`07286000   C:\Windows\SYSTEM32\bcrypt.dll
ModLoad: 00007ffa`09bb0000 00007ffa`09c66000   C:\Windows\SYSTEM32\clbcatq.dll
ModLoad: 00007ffa`02790000 00007ffa`027ce000   C:\Windows\system32\mlang.dll
ModLoad: 00007ff9`e8ed0000 00007ff9`e8f68000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll
ModLoad: 00007ffa`01b50000 00007ffa`01c26000   C:\Windows\SYSTEM32\MSVCR120_CLR0400.dll
ModLoad: 00007ffa`06d20000 00007ffa`06d41000   C:\Windows\SYSTEM32\USERENV.dll
ModLoad: 00007ffa`07cd0000 00007ffa`07cd7000   C:\Windows\system32\PSAPI.DLL
ModLoad: 00007ffa`07770000 00007ffa`07785000   C:\Windows\SYSTEM32\profapi.dll
ModLoad: 00007ffa`02670000 00007ffa`026d4000   C:\Windows\SYSTEM32\mscoree.dll
ModLoad: 00007ffa`025d0000 00007ffa`0266d000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll
ModLoad: 00007ffa`07ce0000 00007ffa`07d34000   C:\Windows\system32\SHLWAPI.dll
ModLoad: 00007ffa`01c30000 00007ffa`025d0000   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
ModLoad: 00007ff9`e8e80000 00007ff9`e8ecf000   C:\Windows\system32\inetsrv\iiscore.dll
ModLoad: 00007ff9`fb670000 00007ff9`fb67b000   c:\windows\system32\inetsrv\W3TP.dll
ModLoad: 00007ff9`e9040000 00007ff9`e905e000   c:\windows\system32\inetsrv\w3dt.dll
ModLoad: 00007ff9`fab20000 00007ff9`fab2e000   C:\Windows\SYSTEM32\HTTPAPI.dll
ModLoad: 00007ffa`02fa0000 00007ffa`02fb5000   C:\Windows\system32\napinsp.dll
ModLoad: 00007ffa`055e0000 00007ffa`055fb000   C:\Windows\system32\NLAapi.dll
ModLoad: 00007ffa`070a0000 00007ffa`070f9000   C:\Windows\System32\mswsock.dll
ModLoad: 00007ffa`06d90000 00007ffa`06e34000   C:\Windows\SYSTEM32\DNSAPI.dll
ModLoad: 00007ffa`02fc0000 00007ffa`02fcd000   C:\Windows\System32\winrnr.dll
ModLoad: 00007ffa`02fd0000 00007ffa`02fda000   C:\Windows\System32\rasadhlp.dll
ModLoad: 00007ffa`04ca0000 00007ffa`04cca000   C:\Windows\SYSTEM32\IPHLPAPI.DLL
ModLoad: 00007ffa`04ba0000 00007ffa`04baa000   C:\Windows\SYSTEM32\WINNSI.DLL
ModLoad: 00007ffa`04a70000 00007ffa`04adb000   C:\Windows\System32\fwpuclnt.dll
ModLoad: 00007ff9`e90f0000 00007ff9`e90f8000   C:\Windows\System32\inetsrv\cachuri.dll
ModLoad: 00007ff9`e9030000 00007ff9`e903a000   C:\Windows\System32\inetsrv\cachfile.dll
ModLoad: 00007ff9`e8e70000 00007ff9`e8e78000   C:\Windows\System32\inetsrv\cachtokn.dll
ModLoad: 00007ff9`e8e60000 00007ff9`e8e70000   C:\Windows\System32\inetsrv\cachhttp.dll
ModLoad: 00007ff9`e8e40000 00007ff9`e8e51000   C:\Windows\System32\inetsrv\compstat.dll
ModLoad: 00007ff9`e8e30000 00007ff9`e8e39000   C:\Windows\System32\inetsrv\defdoc.dll
ModLoad: 00007ff9`e8e20000 00007ff9`e8e2a000   C:\Windows\System32\inetsrv\dirlist.dll
ModLoad: 00007ff9`e8e10000 00007ff9`e8e1a000   C:\Windows\System32\inetsrv\protsup.dll
ModLoad: 00007ff9`e8e00000 00007ff9`e8e0d000   C:\Windows\System32\inetsrv\static.dll
ModLoad: 00007ff9`e8df0000 00007ff9`e8dfe000   C:\Windows\System32\inetsrv\authanon.dll
ModLoad: 00007ff9`e8de0000 00007ff9`e8dee000   C:\Windows\System32\inetsrv\modrqflt.dll
ModLoad: 00007ff9`e8dd0000 00007ff9`e8ddf000   C:\Windows\System32\inetsrv\custerr.dll
ModLoad: 00007ff9`e8dc0000 00007ff9`e8dcd000   C:\Windows\System32\inetsrv\loghttp.dll
ModLoad: 00007ff9`e8db0000 00007ff9`e8db9000   C:\Windows\System32\inetsrv\validcfg.dll
ModLoad: 00007ffa`05e50000 00007ffa`05f02000   C:\Windows\SYSTEM32\shcore.dll
ModLoad: 00007ffa`083a0000 00007ffa`08534000   C:\Windows\system32\ole32.dll
ModLoad: 00007ff9`e8da0000 00007ff9`e8dac000   C:\Windows\System32\inetsrv\warmup.dll
ModLoad: 00007ff9`e8d80000 00007ff9`e8da0000   C:\Windows\System32\inetsrv\isapi.dll
ModLoad: 00007ff9`e8d60000 00007ff9`e8d74000   C:\Windows\System32\inetsrv\filter.dll
ModLoad: 00007ff9`e8cf0000 00007ff9`e8d54000   C:\Windows\system32\inetsrv\rewrite.dll
ModLoad: 00007ff9`e8c90000 00007ff9`e8ce3000   C:\Program Files\IIS\Application Request Routing\requestRouter.dll
ModLoad: 00007ff9`fd2e0000 00007ff9`fd3a9000   C:\Windows\SYSTEM32\WINHTTP.dll
ModLoad: 00007ff9`f9480000 00007ff9`f94cf000   C:\Windows\SYSTEM32\pdh.dll
ModLoad: 00007ffa`07890000 00007ffa`07a6f000   C:\Windows\system32\CRYPT32.dll
ModLoad: 00007ff9`e8c70000 00007ff9`e8c85000   C:\Program Files\IIS\Application Request Routing\gzip.dll
ModLoad: 00007ffa`07820000 00007ffa`07831000   C:\Windows\system32\MSASN1.dll
ModLoad: 00007ff9`f9a30000 00007ff9`f9a38000   C:\Windows\System32\inetsrv\cachuri.dll
ModLoad: 00007ff9`f9a20000 00007ff9`f9a2a000   C:\Windows\System32\inetsrv\cachfile.dll
ModLoad: 00007ff9`f9a10000 00007ff9`f9a18000   C:\Windows\System32\inetsrv\cachtokn.dll
ModLoad: 00007ff9`f9a00000 00007ff9`f9a10000   C:\Windows\System32\inetsrv\cachhttp.dll
ModLoad: 00007ff9`f99e0000 00007ff9`f99f1000   C:\Windows\System32\inetsrv\compstat.dll
ModLoad: 00007ff9`f99d0000 00007ff9`f99d9000   C:\Windows\System32\inetsrv\defdoc.dll
ModLoad: 00007ff9`f99c0000 00007ff9`f99ca000   C:\Windows\System32\inetsrv\dirlist.dll
ModLoad: 00007ff9`f99b0000 00007ff9`f99ba000   C:\Windows\System32\inetsrv\protsup.dll
ModLoad: 00007ff9`f99a0000 00007ff9`f99ad000   C:\Windows\System32\inetsrv\static.dll
ModLoad: 00007ff9`f9990000 00007ff9`f999e000   C:\Windows\System32\inetsrv\authanon.dll
ModLoad: 00007ff9`f9980000 00007ff9`f998e000   C:\Windows\System32\inetsrv\modrqflt.dll
ModLoad: 00007ff9`f9970000 00007ff9`f997f000   C:\Windows\System32\inetsrv\custerr.dll
ModLoad: 00007ff9`f98b0000 00007ff9`f98bd000   C:\Windows\System32\inetsrv\loghttp.dll
ModLoad: 00007ff9`f98a0000 00007ff9`f98a9000   C:\Windows\System32\inetsrv\validcfg.dll
ModLoad: 00007ff9`f9890000 00007ff9`f989c000   C:\Windows\System32\inetsrv\warmup.dll
ModLoad: 00007ff9`f7a00000 00007ff9`f7a20000   C:\Windows\System32\inetsrv\isapi.dll
ModLoad: 00007ff9`f79e0000 00007ff9`f79f4000   C:\Windows\System32\inetsrv\filter.dll
ModLoad: 00007ff9`e8e10000 00007ff9`e8e74000   C:\Windows\system32\inetsrv\rewrite.dll
ModLoad: 00007ff9`e8db0000 00007ff9`e8e03000   C:\Program Files\IIS\Application Request Routing\requestRouter.dll
ModLoad: 00007ff9`f9480000 00007ff9`f94cf000   C:\Windows\SYSTEM32\pdh.dll
ModLoad: 00007ffa`07890000 00007ffa`07a6f000   C:\Windows\system32\CRYPT32.dll
ModLoad: 00007ff9`f79c0000 00007ff9`f79d5000   C:\Program Files\IIS\Application Request Routing\gzip.dll
ModLoad: 00007ffa`07820000 00007ffa`07831000   C:\Windows\system32\MSASN1.dll
1740 w3wphost!WP_IPM::ReportListenerChannelStopped [wpipm.cxx @ 1735]:Report ListenerChannel stopped due to failure; ProtocolId:http, ListenerChannelId:0
                Error(80070005): Access is denied.



ARR_CACHE_CONTROL_OVERRIDE not works as wanted

$
0
0

Hello Laughing,

I have 2 Windows Server 2016 in NLB with ARR (3.0.19) that balance the traffic of my website on the 3 web servers created in the WebFarm.

I created an easy override rule in ARR Cache Control Rules to cache for 2 min all the .html pages of one sitewww.example.com :

                <rule name="ARR_CacheControl_4cf44c98-6758-4e19-87e8-7f3b26f60d3f" enabled="true" patternSyntax="Wildcard">
                    <match url="*.html" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="www.example.com" />
                    </conditions>
                    <serverVariables>
                        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="1,max-age=120" />
                    </serverVariables>
                </rule>

Then I edited in the Url Rewrite module of IIS10 to prevent web mobile client to receive the web cached page of the desktop adding the condition on the HTTP_USER_AGENT, so the request of the client could be forwarded to the index of the web serverwww.example.com/index.php and be redirect to the mobile version of the site on m.example.com 

                <rule name="ARR_CacheControl_4cf44c98-6758-4e19-87e8-7f3b26f60d3f" enabled="true" patternSyntax="Wildcard">
                    <match url="*.html" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="www.example.com" />
                        <add input="{HTTP_USER_AGENT}" pattern="android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos|midp|mobile|phone|Mobile" negate="true" />
                    </conditions>
                    <serverVariables>
                        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="1,max-age=120" />
                    </serverVariables>
                </rule>

The problem is that the rule on user agent doesn't work, and when I enable the disk cache all the mobile clients request are answered with the cache of the desktop page.

For sure I miss something :) could you please help me ?

Thanks,

Renato

Configuring a server with application PORT number in ARR3.0

$
0
0

I am new to ARR just started looking into it.

When adding  servers to the farm, I can add only the server name. 

Is it not possible to give the port number of the application? How is the port number picked or it works only on the default port.

Example discussed here talks about Default application pool and port 80.

Is it possible to configure load balance multiple web sites on different ports?

Lets say all servers have three sites site1@81, site2@82, site3@83 , is it possible to configure loadbalancing to all 3 sites using a single server farm ?

Add original IP address to request header

$
0
0

Hi 

I'm learning about how to use Application request routing to set load balance. I wonder is it possible to add original IP address header when the request relayed to the backend sserver in server farm. Any advice will be appreciate.

Correct location to downlaod a production version of ARR 2 and URL Rewrite 2

$
0
0

Could you provide the correct location to download  ARR 2 and URL Rewrite 2 exes which could be installed in a production environment ?

I have found 2 places for each.

1a. https://www.iis.net/learn/extensions/installing-application-request-routing-arr/install-application-request-routing-version-2

The exe from Download step in above link gives me "ARRv2_setup_x64.EXE"

1b. https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

The exe from Download step in above link gives me "rewrite_amd64.msi"

2a. https://www.microsoft.com/en-us/download/details.aspx?id=16239

The exe from this location gives me "ARRv2_setup_amd64_en-us.EXE"

2b. https://www.microsoft.com/en-us/download/details.aspx?id=7435

The exe from this location gives me "rewrite_2.0_rtw_x64.msi"

Which is correct?

Environment: Windows server 2008 and IIS 7.0

I'm implementing a simple reverse proxy to a backend load balancer (WebSphere app servers behind it) so I have chosen version 2,  Please suggest if  I need to go up on the version as well.

Thanks for your help!

ARR marking unhealthy and not healthy unless logged in

$
0
0

We are running ARR on IIS 8.5 as a way for Exchange Active Sync connections to reach three Exchange 2013 servers.

Once in a while, servers are marked unhealthy and we see Event ID 1000 "Server '[servername]' in server farm '[farmname]' is being marked unhealthy due to unknown health check failure." Then, a couple of minutes later, we see Event ID 1001 as the server is marked healthy again.

The issue we are having is that servers are never marked unhealthy if someone is logged on to the ARR server via Remote Desktop. Once no one is logged on, we start to see all servers marked unhealthy one by one and then apparently the URL Health Test stops checking once all three are marked unhealthy because the servers are not marked healthy again until the moment someone Remote Desktops into the server again. As soon as someone logs onto the server, the servers areimmediatley marked healthy again and all is fine.

Is there some setting I'm missing?

These are the current Health Check settings...


PS C:\Windows\system32> .\inetsrv\appcmd list config -section:webFarms
<webFarms>
  <applicationRequestRouting>
     <hostAffinityProviderList>
        <add name="Microsoft.Web.Arr.HostNameRoundRobin" />
        <add name="Microsoft.Web.Arr.HostNameMemory" />
     </hostAffinityProviderList>
  </applicationRequestRouting>
<webFarm name="[WEBFARMNAME]" enabled="true">
  <applicationRequestRouting>
    <protocol timeout="00:03:20" reverseRewriteHostInResponseHeaders="false" minResponseBuffer="0">
       <cache enabled="false" />
    </protocol>
    <healthCheck url="https://[DOMAIN]/owa/HealthCheck.htm" interval="00:00:30" timeout="00:00:30" statusCodeMatch="200-399" />
    <affinity>
    </affinity>
    <loadBalancing />
    </applicationRequestRouting>
    <server address="[SERVER1 FQDN]" enabled="true">
      <applicationRequestRouting />
    </server>
    <server address="[SERVER2 FQDN]" enabled="true">
      <applicationRequestRouting />
    </server>
    <server address="[SERVER3 FQDN]" enabled="true">
      <applicationRequestRouting />
    </server>
  </webFarm>
</webFarms>

Any ideas?

Thank you!


Add Condition using appcmd

$
0
0

Hello

I need to add conditions to globalRules, but I don't know how to use appcmd to do this.

I found this in a forum

appcmd.exe set config -section:system.webServer/rewrite/globalrules /[name='myRuleName'].conditions /[add input='{HTTPS}',pattern='ON']

but when I run it...

appcmd.exe set config -section:system.webServer/rewrite/globalrules /[name='myRuleName'].conditions /[add input='{HTTPS}',pattern='ON']
ERROR ( message:Cannot find SITE object with identifier "input='{HTTPS}',pattern='ON']". )

It seems to be for modifying an existing condition.

How can I add a new condition from scratch, using appcmd?

Thanks!

Dimas

Using AD group membership for routing

$
0
0
Hi all,
I'm trying to use ARR to route to different URLs based on AD group membership , anyone has an idea on how to accomplish this?
Thanks alot

ARR Caching - Not working as expected

$
0
0

The short version of my problem in a pretty standard implementation of ARR is that the caching caches everything and never checks again for an update.  I've had CSS, js, and image files that have been updated months prior on the application servers never actually get picked up by the ARR cache/proxy, the server continues to serve the older version of the file.  My understanding was that the ARR caching server would check the files on the app server and update its cache if necessary, not permenantly server everything from it's local disk.

 Is there something that I do not have configured correctly here, or is there something I don't understand?

 

Thank you!

Route to Server Farm Port HTTPS

$
0
0

Hi all.

we have set up a server farm according to this article: 
https://kevinareed.com/2015/11/07/how-to-deploy-anything-in-iis-with-zero-downtime-on-a-single-server/     (and some others).

Works great. 

But when we enable HTTPs  we ran into trouble.

We have https binding on ports 8003 and 8004 for the blue and green environments.
When we route to our site we sometimes get the port numbers with the request string :  

https://MySite.com:8003/Cloud/
https://MySite.com:8004/Cloud/

Have a rule to route to the server farm via https:

<rule name="alwaysup HTTPS" enabled="true" stopProcessing="true"><match url=".*" /><conditions><add input="{HTTP_HOST}" pattern="^mySite.com$" /><add input="{SERVER_PORT}" pattern="^443$" /><add input="{REQUEST_URI}" pattern="/cloud" /><add input="{HTTPS}" pattern="ON" /></conditions><action type="Rewrite" url="https://mySite.com/{R:0}" /></rule>

Our site uses federation authentication and it seems that when we get routed to the authentication server, port number (8003,8004) are used. When the authentication server redirects the request contains port numbers (8003,8004)

Need to get rid of the port number from the query string.
Due to firewalls, we do not want to open for other ports on our server and clients definitely do not have these ports open.

<webFarm name="mySite.com" enabled="true"><server address="Production-Green" enabled="true"><applicationRequestRouting httpPort="8002" httpsPort="8004" /></server><server address="Production-Blue" enabled="true"><applicationRequestRouting httpPort="8001" httpsPort="8003" /></server><applicationRequestRouting><healthCheck url="http://mySite.com/up.html" responseMatch="up" /><affinity useCookie="true" cookieName="mySiteAffinity" /></applicationRequestRouting></webFarm>

on a side note:
I thought that the main function of redirect routing (server farm), was to get rid of underlying port, so from the client perspective it is one site :) ..

ARR routing application name (lower,upper casing)

$
0
0

Hi all. 

Why does casing of web application name matter when using a ARR Server Farm ?

We have a blue and green environments hosted on the same server. Works great until.. changing the casing of the name of the application (lower,upper casing)

If we use lower casing in the request string and the name of the web application is in lower case. It works great.
but if using an uppercase name in the request, the server farm returns the port number in the response.

<application path="/cloud" applicationPool="Production_Blue"><virtualDirectory path="/" physicalPath="C:\inetpub\webs\Production\blue\Cloud" /></application>

If I change the name of the application to have upper-case, the scenario reverses:

<application path="/Cloud" applicationPool="Production_Blue"><virtualDirectory path="/" physicalPath="C:\inetpub\webs\Production\blue\Cloud" /></application>

try it out (for a limited time only)
https://careon.is/cloud/
https://careon.is/Cloud/

So, why is this happening, is there some magic switch in IIS that can fix this ??

ps.
see original problem post here:  https://forums.iis.net/p/1235143/2129343.aspx?Re+Route+to+Server+Farm+Port+HTTPS

Viewing all 739 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>