<!-- Click "Preview" for a more readable version --

Please read and follow the instructions before submitting an issue:

- Read all our documentation, especially the [README](https://github.com/axios/axios/blob/master/README.md). It may contain information that helps you solve your issue.
- Ensure your issue isn't already [reported](https://github.com/axios/axios/issues?utf8=%E2%9C%93&q=is%3Aissue).
- If you aren't sure that the issue is caused by Axios or you just need help, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/axios) or [our chat](https://gitter.im/mzabriskie/axios).
- If you're reporting a bug, ensure it isn't already fixed in the latest Axios version.
- Don't remove any title of the issue template, or it will be treated as invalid by the bot.

⚠️👆 Feel free to these instructions before submitting the issue 👆⚠️
-->

#### Describe the bug
In cases where `axios` is used by servers to perform http requests to user-supplied urls, a proxy is commonly used to protect internal networks from unauthorized access and [SSRF](https://en.wikipedia.org/wiki/Server-side_request_forgery). This bug enables an attacker to bypass the proxy by providing a url that responds with a redirect to a restricted host/ip.

#### To Reproduce
The following code spawns a proxy server that *always* responds with a 302 redirect, so requests should never reach the target url, however, `axios` is only reaching the proxy once, and bypassing the proxy after the redirect response. 

https://runkit.com/embed/1df5qy8lbgnc
```js
const axios = require('axios')
const http = require('http')

const PROXY_PORT = 8080

// A fake proxy server
http.createServer(function (req, res) { 
    res.writeHead(302, {location: 'http://example.com'})
    res.end()
  }).listen(PROXY_PORT)

axios({
  method: "get",
  url: "http://www.google.com/",
  proxy: {
    host: "localhost",
    port: PROXY_PORT,
  },
})
.then((r) => console.log(r.data))
.catch(console.error)
```

The response is the rendered html of _http://example.com_

#### Expected behavior
*All* the requests should pass via the proxy. In the provided scenario, there should be a redirect loop.

#### Environment
 - Axios Version [0.21.0]
 - Node.js Version [v12.18.2]

#### Additional context/Screenshots
Add any other context about the problem here. If applicable, add screenshots to help explain.

lib/adapters/http.js
if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) {
            stream.destroy();
            reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded',
              config, null, lastRequest));
          }
        });
        stream.on('error', function handleStreamError(err) {
          if (req.aborted) return;
          reject(enhanceError(err, config, null, lastRequest));
        });
        stream.on('end', function handleStreamEnd() {
          var responseData = Buffer.concat(responseBuffer);
          if (config.responseType !== 'arraybuffer') {
            responseData = responseData.toString(config.responseEncoding);
            if (!config.responseEncoding || config.responseEncoding === 'utf8') {
              responseData = utils.stripBOM(responseData);
            }
          }
          response.data = responseData;
          settle(resolve, reject, response);
        });
      }
    });
    
    req.on('error', function handleRequestError(err) {
      if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;
      reject(enhanceError(err, config, null, req));
    });