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

Round robin doesn't alternate between servers

$
0
0

I've set up a simple configuration, with two internal servers in a farm each serving a slightly different static HTML page.

Upon setting the weighted Round Robin algorithm (without any affinity) I expected my browser to to alternate between the two pages. While it occaisionally changes, and will switch if one of the servers is removed from the farm, the page mostly sticks to one server.

I'm using Shift + F5 (in chrome) to get a fresh copy of the page.

In monitoring and mangement I'm the statistics indicate that requests are being split between the servers. But this is not the experience at the browser.

Does anyone have any suggestions?


ARR: Does FRT show failed requests that you see under Monitor and Managment?

$
0
0

Does enabling FRT on an ARR Server show the failed request that you see under Server Farms > Monitoring and  Management?

Hosting multiple ssl websites using AAR with one public IP

$
0
0

Hi,

   I am having big delimma moving website from main site to branch office. I moved 2 of the websites using msdeploy which was hosted in IIS6 to IIS7 in branch office but I cant configure AAR for load balancing as I dont want to use NLB. I started by creatining virtual machine in 2 vmware exsi 5 host and installed websited using msdeploy successfully however i can browse websites from client but my certificate gets mixed up n given to wrong websites although it browses with error and then I checked binding but seems to be correct one website is all unassigned and other using ip address 20.0.0.100. I created two seperate server farm for each website load balancing but there comes problem again i can see load balancing working fine on the website1 but when i clik on the link for website2 it bring out with no response. The other issue is with public Ip I only have one public ip given to from ISP and I did NAT on my cisco router to get to vmware so when i browse website I can only get to website1 but not website2 which is assigned same public Ip with NAT so do i need another public ip for next ssl website2??? I have also installed both certificate on ARR server but it works randomly ...totally confused... my configuration are as follows:-

Serv1 IP address : 20.0.0.100 and 20.0.0.200 two eth cards

Serv2 IP address: 20.0.0.63 and 20.0.0.201 two eth cards

ARR Serv IP address  :  20.0.0.70

Serv1 and Serv2 hosts same 2 ssl websites on each IIS so how can I acheive this goal to run both SSL website using ARR only having singe public IP and why my certificate gets mixed up.

Help Please am new to ARR 

Configuration question

$
0
0

I have ARR/IIS7/Win2k8 running and successfully directing to an IIS6 server that hosts multiple sites.

Question - Is it necessary to create a server farm if I'm not using redundancy?

Passing IF-Non-Match to farm members

$
0
0

ARR is removing my client's request cache related headers so the member servers of a farm cannot read ETags to check.

is it possible to make ARR keep the headers intact during the farm redirect?

 

Front app as root for all back apps...

$
0
0

Hi all. Been using ARR for long now, but this one really stucks me, even if it seems simple, i can't achieve it... Any help appreciated, been on it for the entire day...

SERVER_A available on internet has a website on 80 and in it , an app called APPFRONT routing everything to SERVER_B:80.

SERVER_B not available on internet has a website on 80 wich routes to other website (SERVER_B:8080/APPBACK1, SERVER_B:8081/APPBACK2...)

What I'm trying to do is:

http://SERVER_A/APPFRONT/APPBACK1 ==>SERVER_B:80 ==>SERVER_B:8080/APPBACK1

http://SERVER_A/APPFRONT/APPBACK2 ==>SERVER_B:80 ==>SERVER_B:8081/APPBACK2

Two websites in two separate content web server but dont want load balancing on both websites

$
0
0

Hi,

   I have got 2 servers one is srv1 and the other is Serv2 and srv3 as ARR server. I have hosted two websites on each content webserver Srv1 and Srv2 and using round robin load balance with even distribution but what is does is it does load balancing is website1 and website2 as well but I only want to do load balancing on Website1 the reason is I only got 1 public IP to host both websites one with ssl and one without. My question is is there any way I can stop load balancing to occur in Website2 where both website ip address is same and pointed by static NAT.

Thanks,

Varnish VS ARR

$
0
0

Hey Guys,

Been doing some testing and I think somethings up.

I have 2 x Windows Server 2012 (One as ARR 3.0 , One as Webserver)
Webserver running 2 sites, 1 static page, 1 test wordpress site.
I also have a 3rd server running Varnish to benchmark against.

So in a nutshell, testing enviroment is:

ARR ----> IIS

Varnish  ----> IIS

First Test, static pages. Using URL stress they both came back with pretty much identicle numbers.
Second Test, wordpress. Varnish came back with almost the same as the static numbers which was great, however the ARR only completes 1-2 requests a second.

Caching is enabled on the ARR box.
Primary Cache is on a RamDisk, Secondary a folder share. 

Any help would be greatly appreciated.


What does the ARR setting "Reverse rewrite host in response headers" do?

$
0
0

Hello,
I wanted to know if someone could help me figure out what the ARR setting "Reverse rewrite host in response headers" does?  I do not see any impact on the headers when it is enabled or not.

Failed Request Tracing Report - ARR_RESPONSE_HEADERS_START and ARR_RESPONSE_HEADERS_END

$
0
0

Hey, 

I'm looking at some Failed Request Tracing reports and can see a large time between two events.

The events are ARR_RESPONSE_HEADERS_START and ARR_RESPONSE_HEADERS_END.

I assume that the time taken is waiting for the destination server to fufill the forwarded request?

Thanks for your help,

Mark

Disable SSL Offloading

$
0
0

I cannot seem to disable SSL offloading. When I uncheck the box the requests do not forward onto the web servers. The applicaiton I am setting up cannot work with SSL offloading. If I uncheck the box and there is not binding for a SSL on the website on the ARR server I get connection refused. (The SSL and binding have been added to the site on the web servers in the farm and works if I go directly to a web server bypassing ARR).

If I add a binding to the site on the ARR server so the connection is not refused I get

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

Without the binding I get

Error 102 (net::ERR_CONNECTION_REFUSED): The server refused the connection.

I tried the rules in the old article I found here but that didn't work either. 

Simply put, I just need to bypass SSL on the ARR. So NO offloading enabled. The box is currently unchecked under Routing Rules. 

ARR v2 RC Disk Cache Drive Marked Unhealthy - EventID's 1006 & 1007 vs. 1008

$
0
0

Since installing the ARR v2 RC I am periodically receiving warning events that the ARR disk cache directory is unhealthy.

"Drive with path '\\?\path' is being marked unhealthy. The data contains the error code."

Provider:  Application Request Routing
EventID:   1006   [ Qualifiers]  32768
Event Data: 7B 00 07 80

About 45 to 90 seconds later there is a corresponding information message (EventID 1007) that the drive is being marked healthy again.

Prior to installing the ARR v2 RC (using the ARR v2 Beta 2 release) I did not see this message pattern.  Instead the server would record the following information message:

EventID 1008 - "Scavenger successfully ran for content in disk location"

Is this an anomaly with RC release?

Jim

ARR and client session affinity in Azure

$
0
0

Hi All:

        I would greatly appreciate any help or guidance from any of you regarding the following issue "AAR and client session affinity in Azure". I have been looking for more information in the web about this issue and asked in the IIS forums (http://forums.iis.net/t/1197442.aspx/1?Question+regarding+the+implementation+of+the+Client+Session+Affinity+in+AAR), but I didn’t find a place where my doubts could be answered. 

       I have read some very interesting articles that has some relation with these issues, but I still have some doubts.

       I have been playing around with Azure and AAR, in order to obtain client session affinity, but I still have just, one BIG doubt.

        Usually in most of the reference materials (http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/http-load-balancing-using-application-request-routing ), there is a single server configure with ARR, that load balances the requests to the different separate application servers belonging to the server farm, so that single ARR enabled server has all the information necessary (Rewrite rules,  web farm server group, cookies belonging to each server) to direct the requests.

       But in Azure, we have:

1)      The Azure Load Balancer

2)      The different ARR enabled server (the web roles, or the IaaS VM in my case)

3)      The different Application server  belonging to the web farm server group (that in my case are the same web roles or IaaS VM, of step 2).

         I have follow the code use on the WinAzureToolkitForEclipseWithJava (  https://github.com/MSOpenTech/WindowsAzureToolkitForEclipseWithJava/blob/master/Utils/ARRConfigurationAgent/ARRConfigurationAgent/ArrWorker.cs) or Benjamin post (http://blogs.msdn.com/b/benjguin/archive/2011/03/25/affinit-233-de-session-sur-azure-avec-arr-session-affinity-on-azure-with-arr.aspx), in order to configure those ARR enabled servers with exactly the same configuration, in an Active/Active fashion.

       But, here my doubt is, in the case that the ARR founds a client session affinity cookie in the request, how does that ARR module knows to which server of the web farm server group to send the request, if they don’t shared the same table storing the associations between the cookies and the servers, because the configuration and decision making is distributed between the different ARR enabled servers.

       If you consider my question interesting, I could provide you with more information that explains all these facts.

      Thanks a lot in advance for your help.

       Kind regards.

              Ángel

Get Loggedin user name in class implementing IRewriteProvider interface

$
0
0

I am creating a URLRewrite provider class implementing the interface IRewriteProvider.  I would like to get the logged in userid  (IIS is setup for windows auth only) in the Rewrite() method so that I can do conditional rewrites based on whether the logged in user belongs to a AD security group or not.

but, I am unable to get the loggedin userid in the Rewrite() method so far..

I am setting up reverse proxy using ARR

any help would be greatly appreciated..

ARR 1 Public and multiple private IP's Hyper-v Server 2012

$
0
0

I have one public IP Ex: 3.4.5.6 This IP has ARR installed and it is also a hyper-v server with mutliple vm's some of these VM's are web servers. The VM web servers are using a virtual switch from the host computer. They can reach the internet through the virtual switch. The host VM's have private IP's Ex: 192.168.1.*

I have tried creating a server farm for one of the VM's but it is not working. Is my issue because the host computer is in a different subnet than the VM's? If so, how can I make the host computer connect correctly to the VM's?

Thank you for all the help!


ARR as passthrough proxy

$
0
0

We are trying to use proxy chain feature of ARR 2.5 to forward request to another (Squid) proxy, but the request is not reaching target squid proxy. Here are the steps that I followed to achieve this:

- Installed ARR 2.5 on Window 2008 server with IIS 7 already installed

- Enabled Proxy at server level and provided Squid proxy URL for proxy chain

- Created new URLRewrite rule with the pattern to match the request

- Selected manual proxy option in IE and provided localhost:80 as proxy server URL

The http request to a external site using the above IE is getting forwarded to local default page. Am I missing any setup? I see lot of documentation on using ARR as reverse proxy, can I use it as just pass thru proxy, similar to squid? Are there any Microsoft alternatives if ARR is not the right choice for it?

 

RSA Web Agent + ARR

$
0
0

Hi there,

I am trying to secure a web application running on a linux server using RSA authenication. Now the applications over java web server doesn't support RSA natively so I need to put the authentication method in front of it.

I have built up a server 2008 box and installed IIS 7 with the RSA web agent on top. Now this successfully gives me a login page which works great. What I want to do is have IIS proxy through to the Linux web server behind it and serve up its content to the client. I can then firewall up the linux box to only allow connections from the IIS proxy. Thus preventing people navigating around the IIS server running the RSA authentication. 

Problem is... I am having some trouble understanding the ARR module and URL rewriting. All I want is to pass through the RSA page after authenticating and then the content from the linux server is fetched by the IIS box and served to the client. I can't seem to work out how to do this.

Can anyone help? Or maybe suggest a better way of putting RSA infront of a web server.

Thanks

Tom

Reverse Proxy Content Modification

$
0
0

Hello,

I'm having a problem detecting the content coming from the website I'm proxing.  In another words I cant overwrite the source html to point all the links to the correct route. My web.config looks as follows:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <rewrite>
      <rules>
        <rule name="Route the requests for DNN" stopProcessing="false">
          <match url="^territorio-amv/(.*)" />
          <conditions>
          </conditions>
          <action type="Rewrite" url="http://territorioamvdev.azurewebsites.net/{R:1}" logRewrittenUrl="false" />
          <serverVariables>
            <set name="HTTP_ACCEPT_ENCODING" value="" />
          </serverVariables>
        </rule>
      </rules>
      <outboundRules>
        <rule name="Add application prefix" preCondition="ResponseIsHtml">
          <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/(.*)" />
          <conditions>
            <add input="{URL}" pattern="^/territorio-amv/.*" />
          </conditions>
          <action type="Rewrite" value="/territorio-amv/{R:1}" />
        </rule>
        <preConditions>
          <preCondition name="ResponseIsHtml">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
          </preCondition>
        </preConditions>
      </outboundRules>
    </rewrite>
    <urlCompression doStaticCompression="false" doDynamicCompression="false" />
  </system.webServer>

This works fine because it captures all input but my local site doesnt work since its sent to /territorio-amv/...

-Thanks

ARR reaction based on URL Rewrite rule result

$
0
0

Hello,

Is there a way to create an action rule based on the result of another url rewrite rule?

I'll give you an example:

I have installed ARR so I configured server farms and some url rewrite rules that they perform a redirect (route to server farm action) to a specific server based on the farm created.

What I'd like to do is to analyze the GET or POST requests and check the result of the rule and if I'll get (ie) HTTP status code 500 then route the request to another farm.

How can I do it?

Can you give me some possible solutions?

Thank you very much

Bye

IIS ARR (edge) cache (reverse proxy) - Upstream connection timeout issue

$
0
0
I am looking to use the IIS Application Request Routing as a reverse proxy cache. I've looked at several different options and come to the conclusion that it fits my needs the best. However, I've run into a sort of a dead end and could really use some input from someone who has more experience with the ARR module.

I have the following setup:
  • IIS ARR cache proxying requests to an internal server farm (weighted round robin loadbalancing to use the nearest origin server).
  • Keep alive is disabled in the IIS proxies.
  • The server farm consists of nginx webservers.
  • The IIS servers have RAM disk caches.

The use case is such that the edge servers will receive byte range requests and as it serves the content to the end user it will cache it (first 60 sec in memory cache, then write it to the RAM disk). So far everything is working correctly but when the next end user starts requesting the same byte ranges (that are now in the cache) I'm starting so see some weird behaviour between the IIS edges and the nginx origins: Upon the first byte range request (by the second end user) the IIS server opens a connection to the nginx origin which it does not use because it already has the requested segments in the cache. Since the connection isn't being used it's eventually closed by nginx due to a timeout (60 seconds). In the mean time the second end user is still requesting segments of the file that are in the cache. Then, and this is where the issue occurs, the second end user gets to a point in the file which is not in the cache. The behaviour I would expect from IIS here (being that keep-alive is disabled) is that it would open up a new connection to the origin and start fetching the part of the file that isn't in the cache. The behaviour I'm seeing however is that IIS tries to reuse the same connection it opened up in the beginning of the request (without realizing that it's been dropped by the origin). I've used the "Failed request tracing" to verify this as well and the result of that is that the IIS doesn't get an expected reply from the origin (since the connection no longer exists) and then, in turn, returns a 502.3 to the end user.

I've verified that increasing the connection timeout on the origins will "solve" the problem, but that is not really a viable solution as I would basically have to set an infinite timeout which may cause a whole new set of problems on the origin side. Is there any way of controlling how IIS handles this upstream connection (i.e. force it to open a new connection when it actually needs data from the origin, or to have it realize that the origin closed the connection)?
Viewing all 739 articles
Browse latest View live


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