<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Proxy on Notes</title>
    <link>https://www.simplicidade.org/tags/proxy/index.xml</link>
    <description>Recent content in Proxy on Notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>melo@simplicidade.org (Pedro Melo)</managingEditor>
    <webMaster>melo@simplicidade.org (Pedro Melo)</webMaster>
    <copyright>(c) 2016 Pedro Melo.</copyright>
    <atom:link href="/tags/proxy/index.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsuhhubbub.superfeedr.com/"/>
    
    <item>
      <title>Proxy software</title>
      <link>https://www.simplicidade.org/survival/proxy-software/</link>
      <pubDate>Fri, 21 Apr 2017 10:08:42 +0100</pubDate>
      <author>melo@simplicidade.org (Pedro Melo)</author>
      <guid>https://www.simplicidade.org/survival/proxy-software/</guid>
      <description>

&lt;p&gt;A small list of proxy software that I use, or that have crossed my radar.&lt;/p&gt;

&lt;h2 id=&#34;nginx&#34;&gt;nginx&lt;/h2&gt;

&lt;p&gt;A single stop solution for all your HTTP, HTTP/2, TCP proxy needs. This is my go-to software today, it covers 80% to 90% of my needs, in a single package with a common configuration language. Why run multiple services if a single one covers what you need&amp;hellip; Also, wicked fast. I really avoid going to others unless there is a clear need for it.&lt;/p&gt;

&lt;p&gt;The weakest point for &lt;a href=&#34;https://nginx.org&#34;&gt;nginx&lt;/a&gt; is that dynamic reconfiguration, specially of backend configurations, are only available with the paid version, &lt;a href=&#34;https://www.nginx.com/products/&#34;&gt;nginx Plus&lt;/a&gt;. But you can get a long way there with a small sidecar process that listens to service discovery updates, rewrites nginx configuration files, and asks nginx to reload them.&lt;/p&gt;

&lt;p&gt;nginx features that are rareley mentioned: you can upgrade the nginx version without downtime. I haven&amp;rsquo;t came across any other proxy software that does this. But admitelly I haven&amp;rsquo;t looked that hard either&amp;hellip;&lt;/p&gt;

&lt;p&gt;See also &lt;a href=&#34;http://tengine.taobao.org&#34;&gt;tengine&lt;/a&gt;, a nginx distribution originaly by &lt;a href=&#34;https://en.wikipedia.org/wiki/Taobao&#34;&gt;Taobao&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&#34;haproxy&#34;&gt;haproxy&lt;/h2&gt;

&lt;p&gt;&lt;a href=&#34;https://www.haproxy.org&#34;&gt;haproxy&lt;/a&gt; is the grand daddy of reverse proxies. Very easy to setup, simpler than nginx. Has a nice built-in HTTP status interface.&lt;/p&gt;

&lt;p&gt;At the moment, nginx does everything that I need that haproxy has, and I don&amp;rsquo;t need the extras that haproxy has that nginx lacks. If I already have nginx running it makes little sense to add another service. But if I just need plain TCP reverse proxy, then I prefer haproxy. It boild down to reducing the number of services I have to have running.&lt;/p&gt;

&lt;h2 id=&#34;varnish&#34;&gt;Varnish&lt;/h2&gt;

&lt;p&gt;Another classic. If you have strong caching needs, &lt;a href=&#34;https://varnish-cache.org&#34;&gt;Varnish&lt;/a&gt; is the software to use.&lt;/p&gt;

&lt;p&gt;Used to be he most flexible software in terms of configuration due to the use of very complete request routing language, VCL. But recent releases of haproxy, with Lua support, and nginx (either with Lua support on the &lt;a href=&#34;https://openresty.org/en/&#34;&gt;OpenResty&lt;/a&gt; version, or the new &lt;a href=&#34;https://www.nginx.com/blog/launching-nginscript-and-looking-ahead/&#34;&gt;nginScript&lt;/a&gt;), you might have similar capabilities with the others.&lt;/p&gt;

&lt;h2 id=&#34;fabio&#34;&gt;Fabio&lt;/h2&gt;

&lt;p&gt;My current favorite to replace &lt;a href=&#34;https://nginx.org&#34;&gt;nginx&lt;/a&gt; (although see &lt;a href=&#34;https://traefik.io&#34;&gt;traeffik&lt;/a&gt; below&amp;hellip;): integration with &lt;a href=&#34;https://www.consul.io&#34;&gt;Consul&lt;/a&gt;, &lt;a href=&#34;https://www.vaultproject.io&#34;&gt;Vault&lt;/a&gt;, PROXY Protocol Support for easier integration with &lt;a href=&#34;https://aws.amazon.com/elasticloadbalancing/&#34;&gt;Amazon load-balancers&lt;/a&gt; and &lt;a href=&#34;https://www.haproxy.org&#34;&gt;haproxy&lt;/a&gt;, and traffic shapping for canary deployments.&lt;/p&gt;

&lt;p&gt;See the &lt;a href=&#34;https://github.com/fabiolb/fabio/wiki/Features&#34;&gt;full feature list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My only concern is that there is &lt;a href=&#34;https://github.com/fabiolb/fabio/pulse&#34;&gt;mainly one commiter&lt;/a&gt;. This is true of multiple software projects I use (&lt;a href=&#34;https://redis.io&#34;&gt;Redis&lt;/a&gt; comes to mind), but still, I tend to approach these situations with care.&lt;/p&gt;

&lt;h2 id=&#34;others&#34;&gt;Others&lt;/h2&gt;

&lt;p&gt;Other software projects to look at someday:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://traefik.io&#34;&gt;traeffik&lt;/a&gt;: I really need to look into this one, looks awesome!&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://gobetween.io&#34;&gt;gobetween&lt;/a&gt; (excellent name&amp;hellip;): a layer 4 reverse proxy, TCP, UDP and TCP with TLS. &lt;a href=&#34;https://www.consul.io&#34;&gt;Consul&lt;/a&gt; integration, and much more;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://linkerd.io&#34;&gt;linkerd&lt;/a&gt;: a &lt;a href=&#34;https://www.cncf.io&#34;&gt;CNF&lt;/a&gt; project, focused on creating a service mesh for micro-services integrations;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://getkong.org&#34;&gt;Kong&lt;/a&gt;: an API Gateway;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://caddyserver.com&#34;&gt;Caddy&lt;/a&gt;: HTTPS and HTTP/2 by default, with automatic integration with &lt;a href=&#34;https://letsencrypt.org&#34;&gt;Lets Encrypt&lt;/a&gt;. Configuration looks very simple;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/zalando/skipper&#34;&gt;skipper&lt;/a&gt;: flexible HTTP router, easy to add filters that modify requests and responses;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/cloudfoundry/gorouter&#34;&gt;gorouter&lt;/a&gt;: interesting use of &lt;a href=&#34;https://nats.io&#34;&gt;NATS&lt;/a&gt; to manage the routing table&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/google/seesaw&#34;&gt;seesaw&lt;/a&gt;: un-official Google product, frontend to Linux kernel LVS, including support for Direct Server Return.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Episode IV: a new hope</title>
      <link>https://www.simplicidade.org/notes/2004/09/28/episode-iv-a-new-hope/</link>
      <pubDate>Tue, 28 Sep 2004 13:23:51 +0000</pubDate>
      <author>melo@simplicidade.org (Pedro Melo)</author>
      <guid>https://www.simplicidade.org/notes/2004/09/28/episode-iv-a-new-hope/</guid>
      <description>&lt;p&gt;Well, if your bandwidth bill from you RSS feeds is starting to eat your income, then you should thank &lt;a href=&#34;http://www.bloglines.com/&#34;&gt;Bloglines&lt;/a&gt; and &lt;a href=&#34;http://www.bradsoft.com/&#34;&gt;some&lt;/a&gt; &lt;a href=&#34;http://www.ranchero.com/&#34;&gt;desktop&lt;/a&gt; &lt;a href=&#34;http://www.blogbot.com/&#34;&gt;aggregation&lt;/a&gt; software companies.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href=&#34;http://www.bloglines.com/about/pr_09282004&#34;&gt;new service&lt;/a&gt; from Bloglines. Basically they will develop a new &lt;a href=&#34;http://www.bloglines.com/services/&#34;&gt;Web service API&lt;/a&gt; so that applications can pull the feeds from them, instead of pooling your site directly. FeedDemon, NetNewsWire and Blogbot will have support (apparently there is a beta of FeedDemon already out with support for it).&lt;/p&gt;

&lt;p&gt;See also &lt;a href=&#34;http://www.wingedpig.com/archives/000178.html&#34;&gt;Mark&lt;/a&gt; excitement over the new service :).&lt;/p&gt;

&lt;p&gt;Although I don&amp;rsquo;t like pooling (see a &lt;a href=&#34;http://www.simplicidade.org/notes/archives/2004/09/another_bandaid.html&#34;&gt;previous post&lt;/a&gt; regarding &lt;a href=&#34;http://asdf.blogs.com/asdf/2004/09/mod_speedyfeed__1.html&#34;&gt;mod_speedyfeed&lt;/a&gt;), I see this one as a necessary step towards a real pub-sub network. Bloglines, as others who already have a lot of feeds locally, are the best players to start, or to feed a pub-sub network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; there is a &lt;a href=&#34;http://search.cpan.org/~miyagawa/WebService-Bloglines-0.01/&#34;&gt;Perl module&lt;/a&gt; already!&lt;br /&gt;
&lt;strong&gt;Update 2:&lt;/strong&gt; &lt;a href=&#34;http://inessential.com/?comments=1&amp;amp;#38;postid=2922&#34;&gt;some comments&lt;/a&gt; from Brent give you some idea about the possibilities of this setup.&lt;/p&gt;

&lt;p&gt;Very good stuff, congrats to Bloglines.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>