Apache, IIS and 502 proxy error

I have some servers in my network. There is one public Apache server that proxies requests to these servers. These servers are not directly visible from internet. Some of these servers run IIS and ASP.NET web applications. When accessing these servers through internet then sometimes Apache reports a problem: 502 proxy error.

After some digging in internet I found out what’s going on between Apache and IIS. There is very informative bug report in Apache issue tracker – Bug 37770 – proxy: error reading status line from remote server (null). Comment #17 states reason of error as follows:

The problem also only occurs for us when we use an IIS backend device, with an apache its ok. From a tcpdump the only diff I can see between the two sessions is that the IIS closes the connection when the keep-alive time out is reached with a TCP RST packet, while the apache does a Fin/Ack handshake. When IIS sends this RST packet the next request to the mod_proxy device that’s hits the worker with the RST connection returns the 502 error msg.

So, there is some misunderstandings between Apache proxy stuff and IIS. Although some guys suggest to use very long timeouts and hacks to Apache source code there is very simple fix that works very well for me. Make sure you have mod_env enabled and add these lines to Apache configuration file.

SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1

After restarting Apache server the communication between Apache and IIS should work fine. After these modifications I have seen no error 502 anymore.

Gunnar Peipman

Gunnar Peipman is ASP.NET, Azure and SharePoint fan, Estonian Microsoft user group leader, blogger, conference speaker, teacher, and tech maniac. Since 2008 he is Microsoft MVP specialized on ASP.NET.

    45 thoughts on “Apache, IIS and 502 proxy error

    • February 11, 2009 at 6:15 pm
      Permalink

      This post is very timely. I just set up dev environments for me and my co-workers at my job, and this issue has been frustrating us. Many thanks.

    • August 11, 2009 at 10:33 am
      Permalink

      Nice blog
      I am facing same problem. I have done the above mentioned changes SetEnv. But still getting the same error.I am using apache 2.2.3

    • August 26, 2009 at 11:17 am
      Permalink

      This solution worked for me, thanks for posting it

    • September 3, 2009 at 11:03 am
      Permalink

      Good Solution.. Worked for me..

    • September 21, 2009 at 9:19 am
      Permalink

      Firstly, I would like to know the impact of 502 error. When the apache act as proxy reported 502, how the apache will assume the status of IIS servers?

      On other hand, the two setenv will fallback to httpd/1.0 without keepalive. Does it may increaes the TCP sockets needed to be opened as no more keepalive?

      This will increase the loading for the IIS server.

    • May 14, 2010 at 7:27 am
      Permalink

      I am getting this error in two scenarious after this env setting is done,
      if the request that is made from the browser is time taking/bigger size data as a result.
      and observed if number of simultaneous requests are in the range of 5-10

      Please help me

    • May 10, 2011 at 11:40 am
      Permalink

      Althu, this was written in 2009, but helped me last day. Was having same issue and was unable to find root couse. This helps. Thanks a lot and keep up the good things.

    • June 17, 2011 at 7:57 pm
      Permalink

      Great! This is exactly what I was looking for and it works! Thanks!

    • October 10, 2011 at 11:06 am
      Permalink

      I had a similar problem and resorted to turning of HTTP keep-alive among the common response headers in IIS. Works for both IIS6 and IIS7.

    • November 22, 2011 at 4:42 am
      Permalink

      Checked out your Gateway IP, Same problem did hurt me also on inspection i found that i did’t give my Gateway IP to my LAN Card.

    • December 8, 2011 at 10:03 am
      Permalink

      After upgrading my IIS backend from Windows 2003/IIS6 to Windows 2008/IIS7 I suddenly got 502 errors. Thanks to this post I was able to sort out the issue, thanks a lot!!!

    • September 5, 2012 at 6:09 am
      Permalink

      Thanks DigiMortal, this solved a very big problem for me!

      / Jakob

    • Pingback:Fix Apache Error 502 Errors - Windows XP, Vista, 7, 8

    • Pingback:How To Fix Apache Error Reading From Remote Server in Windows

    • April 5, 2025 at 10:13 pm
      Permalink

      Hello, after reading this amazing paragraph i am too happy to share my know-how here with mates.

    • April 6, 2025 at 1:34 pm
      Permalink

      After I initially commented I appear to have clicked the -Notify
      me when new comments are added- checkbox and from now on every time a comment
      is added I recieve four emails with the exact same comment.
      Is there a way you can remove me from that service? Cheers!

      My web page: https://www.cucumber7.com/

    • April 27, 2025 at 4:34 am
      Permalink

      My programmer is trying to persuade me to move
      to .net from PHP. I have always disliked the idea because of
      the costs. But he’s tryiong none the less. I’ve been using WordPress on various
      websites for about a year and am concerned about switching to another
      platform. I have heard very good things about blogengine.net.
      Is there a way I can transfer all my wordpress
      posts into it? Any kind of help would be really appreciated!

    • April 28, 2025 at 8:34 pm
      Permalink

      I’m no longer sure where you’re getting your info, however
      great topic. I needs to spend a while learning more or understanding more.
      Thank you for magnificent info I used to be on the
      lookout for this info for my mission.

    • April 29, 2025 at 12:13 pm
      Permalink

      Very nice post. I just stumbled upon your weblog and wished to
      say that I have truly enjoyed surfing around your blog posts.

      After all I’ll be subscribing to your rss feed and I hope
      you write again soon!

      my site … Engine Performance

    • April 30, 2025 at 7:34 pm
      Permalink

      Very good site you hаve heee but I waѕ curious if you knew of any community forums that cover the same topics discussed here?
      I’d really love to bbe a part of group where I can get
      feed-back frⲟm other excperienced individuals that share the same interest.
      If you have anny suggestions, please let me know.
      Bless you!

      Feel free to visit my page unblocked games 66

    • May 13, 2025 at 1:58 pm
      Permalink

      I have been surfing online more than 3 hours today, yet I never found any interesting article like yours.

      It is pretty worth enough for me. In my view, if all website
      owners and bloggers made good content as you did,
      the web will be a lot more useful than ever before.

      My web page :: Camshaft Timing Control

    • May 14, 2025 at 4:26 pm
      Permalink

      Useful info. Lucky me I discovered your website by chance, and
      I am shocked why this coincidence did not took place earlier!
      I bookmarked it.

    • May 16, 2025 at 1:26 pm
      Permalink

      Thank you a bunch for sharing this with all folks you
      actually recognize what you are talking about! Bookmarked.

      Kindly also talk over with my website =). We could have a hyperlink
      alternate arrangement between us

    • May 22, 2025 at 2:44 pm
      Permalink

      you’re in reality a just right webmaster. The website loading speed is amazing.
      It sort of feels that you are doing any distinctive trick.
      Furthermore, The contents are masterwork. you have performed a great process on this topic!

    • May 23, 2025 at 4:45 am
      Permalink

      excellent points altogether, you simply won a new reader.

      What might you suggest in regards to your post that you made a few
      days ago? Any positive?

    • May 23, 2025 at 4:49 pm
      Permalink

      Een doordacht en prikkelend artikel. Ik heb hhet gedeeld op X (voorheen Twitter)
      om te helpen de boodschap te verspreidenom het onder de aandacht te brengenom het te promotenom
      de bekendheid te vergrotenom het te dele meet anderen.

    • May 29, 2025 at 11:54 pm
      Permalink

      What’s up colleagues, nice post and fastidious urging commented here, I am in fact enjoying by these.

    • June 5, 2025 at 4:38 am
      Permalink

      Unquestionably believe that that you said. Your favourite justification seemed to be at
      the net the simplest factor to remember of. I say to you, I definitely get
      irked while other folks think about concerns that they just
      do not recognize about. You managed to hit the nail upon the highest and outlined out the whole
      thing with no need side effect , other people could take
      a signal. Will likely be again to get more. Thanks

    • June 9, 2025 at 5:04 pm
      Permalink

      It’s perfect time to make some plans for the future and it is time to be happy.

      I’ve read this post and if I could I want to suggest you some interesting things or tips.

      Perhaps you can write next articles referring to
      this article. I wish to read even more things about it!

    • June 17, 2025 at 8:13 pm
      Permalink

      The Private Instagram Viewer is a simple tool meant to allow you anonymously investigate public Instagram profiles without
      logging into your own account. Whether you’re eager virtually a username,
      want to look someones profile portray in full
      size, or check out their bio and public posts, this tool makes it fast and private.

    Leave a Reply

    Your email address will not be published. Required fields are marked *