<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://briansnelson.com/index.php?action=history&amp;feed=atom&amp;title=HAProxy_Block_by_User-Agent</id>
		<title>HAProxy Block by User-Agent - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://briansnelson.com/index.php?action=history&amp;feed=atom&amp;title=HAProxy_Block_by_User-Agent"/>
		<link rel="alternate" type="text/html" href="https://briansnelson.com/index.php?title=HAProxy_Block_by_User-Agent&amp;action=history"/>
		<updated>2026-06-04T02:49:10Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://briansnelson.com/index.php?title=HAProxy_Block_by_User-Agent&amp;diff=1030&amp;oldid=prev</id>
		<title>Brian at 08:33, 12 December 2019</title>
		<link rel="alternate" type="text/html" href="https://briansnelson.com/index.php?title=HAProxy_Block_by_User-Agent&amp;diff=1030&amp;oldid=prev"/>
				<updated>2019-12-12T08:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 08:33, 12 December 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You are looking for&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You are looking for&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Configuration file is valid&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;Configuration file is valid&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Next restart or start the server to start blocking by user-agent&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Next restart or start the server to start blocking by user-agent&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; service haproxy restart/start&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; service haproxy restart/start&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key briansne_wiki-wiki_:diff:version:1.11a:oldid:1029:newid:1030 --&gt;
&lt;/table&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	<entry>
		<id>https://briansnelson.com/index.php?title=HAProxy_Block_by_User-Agent&amp;diff=1029&amp;oldid=prev</id>
		<title>Brian: Created page with &quot;==HAProxy block by User-Agent==  As with any proxy service, you will want to block bad bots.  Blocking by the a keyword in the user-agent before it hits the backend servers wi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://briansnelson.com/index.php?title=HAProxy_Block_by_User-Agent&amp;diff=1029&amp;oldid=prev"/>
				<updated>2019-12-12T08:32:56Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;==HAProxy block by User-Agent==  As with any proxy service, you will want to block bad bots.  Blocking by the a keyword in the user-agent before it hits the backend servers wi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==HAProxy block by User-Agent==&lt;br /&gt;
&lt;br /&gt;
As with any proxy service, you will want to block bad bots.  Blocking by the a keyword in the user-agent before it hits the backend servers will save on server resources.&lt;br /&gt;
&lt;br /&gt;
Add the following to your haproxy configuration file&lt;br /&gt;
&lt;br /&gt;
 vim /etc/haproxy/haproxy.cfg&lt;br /&gt;
&lt;br /&gt;
Add the following to your frontend&lt;br /&gt;
&lt;br /&gt;
   # Block badbots&lt;br /&gt;
  acl is-blockedagent hdr_sub(user-agent) -i -f /etc/haproxy/blacklist-agent.txt&lt;br /&gt;
  http-request deny if is-blockedagent&lt;br /&gt;
&lt;br /&gt;
Save then add the blacklist-agent.txt file.&lt;br /&gt;
&lt;br /&gt;
 vim /etc/haproxy/blacklist-agent.txt&lt;br /&gt;
&lt;br /&gt;
Block the basics&lt;br /&gt;
&lt;br /&gt;
 SemrushBot&lt;br /&gt;
 AhrefsBot&lt;br /&gt;
 MJ12bot&lt;br /&gt;
 ZoominfoBot&lt;br /&gt;
 DotBot&lt;br /&gt;
 MauiBot&lt;br /&gt;
&lt;br /&gt;
Save and check your configuration&lt;br /&gt;
&lt;br /&gt;
 service haproxy check&lt;br /&gt;
&lt;br /&gt;
You are looking for&lt;br /&gt;
&lt;br /&gt;
Configuration file is valid&lt;br /&gt;
&lt;br /&gt;
Next restart or start the server to start blocking by user-agent&lt;br /&gt;
&lt;br /&gt;
 service haproxy restart/start&lt;/div&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	</feed>