# Forward proxy vs Reverse proxy and Proxy Cache features

**URL:** <https://www.ruby-forum.com/t/forward-proxy-vs-reverse-proxy-and-proxy-cache-features/195606>\
**Category:** NGINX\
**Created:** [September 26, 2010, 7:07pm UTC](https://www.ruby-forum.com/t/forward-proxy-vs-reverse-proxy-and-proxy-cache-features/195606 "2010-09-26T19:07:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cachenewbie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f07891/32.png) [@cachenewbie](https://www.ruby-forum.com/u/cachenewbie)\
**Post date:** [September 26, 2010, 7:07pm UTC](https://www.ruby-forum.com/t/forward-proxy-vs-reverse-proxy-and-proxy-cache-features/195606/1 "2010-09-26T19:07:57Z")

</div>

All - I’ve read through most of the posts before posting this but  
couldn’t find answer to the specific question I have.

I’ve been looking at nginx, squid, varnish and Apache Traffic server to  
determine the best one to use as a transparent forward caching  
proxy with necessary modifications (to the code or configuration  
file) - I understand Nginx (and varnish) is built from scratch to be a  
reverse proxy and I know nginx performs very well under load as a  
reverse proxy. With Nginx adoption increasing, I’d like to know if  
there are enough “caching support” in Nginx to be used as [a] caching  
proxy and [b] forward proxy. Here are my specific questions:

1. What major “feature” or “capability” does Nginx lack as a forward  
proxy (as compared to say Squid) ? With modification to the code or  
“proxy\_pass” config line, it’s not difficult to make it talk to the  
Internet (and not a specific backend server). So what are the missing  
pieces in Nginx that makes it unsuitable for forward proxy mode ?
2. What are the “caching” features that are critical (compared to squid)  
that are missing in squid ? If Nginx is changed to run as forward proxy  
(with httpproxymodule), can I expect similar cache hit with Nginx and  
other proxy caches (say Squid) ?
3. What are other features of a cache that Nginx doesn’t support and are  
critical ?
4. I know Nginx is far superior in performance compared to squid but  
which piece/component of Nginx is contributing to the gain ? Is it the  
event driven model, RAM memory usage, data structures or caching  
architecture ?

Thanks in advance.

Posted at Nginx Forum:

> **[Forward proxy vs Reverse proxy and Proxy Cache features](https://forum.nginx.org/read.php?2,134286,134286#msg-134286)**
>
> All - I've read through most of the posts before posting this but couldn't find answer to the specific question I have. I've been looking at nginx, squid, varnish and Apache Traffic server to determine the best one to use as a \[u\]transparent forward...

---

<div class="post-metadata">

**Author:** ![cachenewbie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f07891/32.png) [@cachenewbie](https://www.ruby-forum.com/u/cachenewbie)\
**Post date:** [September 27, 2010, 3:17am UTC](https://www.ruby-forum.com/t/forward-proxy-vs-reverse-proxy-and-proxy-cache-features/195606/2 "2010-09-27T03:17:19Z")

</div>

I can answer 4.  
The event driven style results in a lowe memory usage and context  
switches then would be needed using a threaded model which gives nignx  
a huge performance advantage. Also its much smaller and less bloated,  
and written for speed.

---

<div class="post-metadata">

**Author:** ![cachenewbie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f07891/32.png) [@cachenewbie](https://www.ruby-forum.com/u/cachenewbie)\
**Post date:** [September 27, 2010, 4:27pm UTC](https://www.ruby-forum.com/t/forward-proxy-vs-reverse-proxy-and-proxy-cache-features/195606/3 "2010-09-27T16:27:02Z")

</div>

Thanks mat h

Anyone else has answers to 1 to 3 ? There was a typo in my original  
post . [2] is supposed to read "What are the “caching” features that are  
critical (compared to squid) that are missing in _nginx_ "

Thanks.

Posted at Nginx Forum:

> **[Re: Forward proxy vs Reverse proxy and Proxy Cache features](https://forum.nginx.org/read.php?2,134286,134576#msg-134576)**
>
> All - I've read through most of the posts before posting this but couldn't find answer to the specific question I have. I've been looking at nginx, squid, varnish and Apache Traffic server to determine the best one to use as a \[u\]transparent forward...
