<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christopher J. Buckley &#187; zxtm</title>
	<atom:link href="http://www.cjbuckley.net/blog/tag/zxtm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cjbuckley.net/blog</link>
	<description>Free-Software, GNU/Linux, Traffic Management &#38; Thoughts</description>
	<lastBuildDate>Mon, 16 Mar 2009 16:18:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Major Power Outage in San Francisco &#8211; Major Websites Affected</title>
		<link>http://www.cjbuckley.net/blog/2007/07/24/major-power-outagge-in-san-fran-major-websites-affected/</link>
		<comments>http://www.cjbuckley.net/blog/2007/07/24/major-power-outagge-in-san-fran-major-websites-affected/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 22:24:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[big ip]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[f5]]></category>
		<category><![CDATA[global load balancing]]></category>
		<category><![CDATA[outage]]></category>
		<category><![CDATA[power]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/2007/07/24/major-power-outagge-in-san-fran-major-websites-affected/</guid>
		<description><![CDATA[Word reaches me that multiple major websites are down as a result of a major power outage in San Francisco, CA.  Valleywag initially claimed that a drunken person had gotten in and damaged 40 racks, but an update from Technorati&#8217;s Dave Sifry says the problem is a widespread power outage. 
Folks,
I just wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>Word reaches me that <a href="http://valleywag.com/tech/breakdowns/a-drunk-employee-kills-all-of-the-websites-you-care-about-282021.php">multiple major websites are down</a> as a result of a major power outage in San Francisco, CA.  Valleywag initially claimed that a drunken person had gotten in and damaged 40 racks, but an update from Technorati&#8217;s Dave Sifry says the problem is a widespread power outage. </p>
<blockquote><p>Folks,</p>
<p>I just wanted to let you know, it looks like San Francisco is having a MAJOR power event, with outages from the Financial district all the way down to Daly City. One of our colos at 365 Main Street has experienced a power outage (never mind that they always swear up and down that this kind of event can&#8217;t possibly happen, oh no, they have multiple redundant systems and they charge us up the wazoo to make sure that we&#8217;ll have business continuity, so of course, this isn&#8217;t really happening, oh yes) however, our other data centers are all up and running, so we hope to be back up and running as quickly as possible.</p>
<p>I&#8217;ll keep you all updated on progress, and I appreciate you bearing with us as we work our way through this&#8230;</p>
<p>Dave</p></blockquote>
<p><a class="tt-flickr"><img src="http://farm2.static.flickr.com/1136/1171097037_f267a94253.jpg" alt="Golden Gate Bridge" width="500" height="313" border="0" /></a> </p>
<p>Sites affected include Technorati, Netflix (these display nice &#8220;We&#8217;re Dead&#8221; pages), Typepad, LiveJournal, Sun.com, and Craigslist (these just time out).</p>
<p>I, personally, am amazed that none of these significant websites employ <a href="http://en.wikipedia.org/wiki/Global_Server_Load_Balancing">global server load balancing</a>.  Major load-balancer vendors such as <a href="http://www.f5.com/products/bigip/gtm/">F5</a>, <a href="http://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=125127">Cisco</a>, <a href="http://www.citrix.com/English/NE/news/news.asp?newsID=38805">NetScaler</a> and <a href="http://www.zeus.com/products/zxtmglb/index.html">Zeus</a> all offer first-class GSLB offerings.   </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2007/07/24/major-power-outagge-in-san-fran-major-websites-affected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to prevent hotlinking using ZXTM</title>
		<link>http://www.cjbuckley.net/blog/2007/06/13/how-to-prevent-hotlinking-using-zxtm/</link>
		<comments>http://www.cjbuckley.net/blog/2007/06/13/how-to-prevent-hotlinking-using-zxtm/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 14:45:13 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Hotlinking]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/2007/06/13/how-to-prevent-hotlinking-using-zxtm/</guid>
		<description><![CDATA[As we all know, hot linking has become a huge bandwidth strain for linked sites.  I&#8217;ve recently discovered a fair few sites linking to images on this site without permission.  Now, there&#8217;s lots of Apache tutorials to counter this problem &#8211; but if you run a large cluster of webservers, this isn&#8217;t always [...]]]></description>
			<content:encoded><![CDATA[<p>As we all know, hot linking has become a huge bandwidth strain for linked sites.  I&#8217;ve recently discovered a fair few sites linking to images on this site without permission.  Now, there&#8217;s lots of Apache tutorials to counter this problem &#8211; but if you run a large cluster of webservers, this isn&#8217;t always easily implemented.  Far better to do it on your <a href="http://www.zeus.com/products/zxtm/">front-end load balancer.</a></p>
<p>Using TrafficScript you can prevent hot linking like so:</p>
<pre>
$referrer = string.lowerCase( http.getHeader( "Referer" ));
$host     = http.getHostHeader();
$path     = http.getPath();
$redirect = "/blocked.png";

# Never block requests with no Referer:
if( $referrer != "" ) {
   # Referer header should contain the hostname of the site
   if( !string.contains( $referrer, $host )) {
      # Only block images
      $path = http.getPath();
      if( string.regexMatch( $path, "\\.(jpe?g|png|gif)" )) {
         # OK, block this image (but allow our special blocked image)
         if( $path != $redirect ) {
            # Redirect them to our 'Go away' image
            http.redirect( $redirect);
         }
      }
   }
}
</pre>
<p>..and if you&#8217;re quick enough, you can catch the cheeky so and so&#8217;s at <a href="http://altplustab.blogspot.com/">altplustab</a> who decided to use an image of mine on their front-page.  I wonder how long it&#8217;ll be before they remove it?  </p>
<p>Here&#8217;s a screenshot for when they stop stealing my bandwidth and remove the hotlink.<br />
&nbsp;<br />
<a href="http://www.cjbuckley.net/blog/flickr/photo/544089191/evil-hotlinkers.html" class="tt-flickr"><img src="http://farm2.static.flickr.com/1002/544089191_64d9b463f7.jpg" alt="evil-hotlinkers" width="500" height="357" border="0" /></a> </p>
<p>Here&#8217;s another person abusing my bandwidth, not a surprise from a <a href="http://www.myspace.com/elnachodelmiogrande">MySpace user</a>, mind.<br />
&nbsp;<br />
<a href="http://www.cjbuckley.net/blog/flickr/photo/544808533/myspacehotlinker.html" class="tt-flickr"><img src="http://farm2.static.flickr.com/1256/544808533_e23341ae6b.jpg" alt="myspace_hotlinker" width="470" height="371" border="0" /></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2007/06/13/how-to-prevent-hotlinking-using-zxtm/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Gartner Magic Quadrant ADC, 2007.</title>
		<link>http://www.cjbuckley.net/blog/2007/05/08/gartner-magic-quadrant-adc-2007/</link>
		<comments>http://www.cjbuckley.net/blog/2007/05/08/gartner-magic-quadrant-adc-2007/#comments</comments>
		<pubDate>Tue, 08 May 2007 12:16:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[BigIP]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[f5]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[Magic Quadrant]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[TrafficScript]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/2007/05/08/gartner-magic-quadrant-adc-2007/</guid>
		<description><![CDATA[Just a heads up for anyone with an interest in the Application Delivery Control market, Gartner have released their 2007 ADC assessment paper.   
This paper has taken some time coming, but the make up is clear:




For me, there are two notable aspects of this paper:

Firstly, F5 have pushed further out ahead of their [...]]]></description>
			<content:encoded><![CDATA[<p>Just a heads up for anyone with an interest in the Application Delivery Control market, <a href="http://www.gartner.com/">Gartner</a> have released their <a href="http://mediaproducts.gartner.com/reprints/f5networks/vol2/article1/article1.html">2007 ADC assessment paper</a>.   </p>
<p>This paper has taken some time coming, but the make up is clear:</p>
<div style="float: center; margin-left: 10px; margin-bottom: 10px;">
<img src="http://farm1.static.flickr.com/220/489732858_7017e147ba_o.png" width="372" height="383"  alt="Gartner Magic Quadrant ADC 2007" />
</div>
<p><br clear="all" /></p>
<p>For me, there are two notable aspects of this paper:</p>
<ol>
<li>Firstly, <a href="http://www.f5.com/">F5</a> have pushed further out ahead of their competition.  Having had first hand experience of their products, I would agree with Gartner&#8217;s assessment, but also at the same time have some reservations (largely involving the iRules scripting language).   Something which did irk me was Gartner&#8217;s assertion that:<br />
<blockquote>The Big-IP product is so feature-rich it can be intimidating to some customers</p></blockquote>
<p>  No &#8211; the product&#8217;s GUI just isn&#8217;t <b>that</b> intuitive.  Really &#8211; is an overview page of global health status too much to implement?  <a href="#1">[1]</a>
   </li>
<li>Secondly, as anyone who has an understanding of ADC products has realised for quite a while (or, should have done), <a href="http://www.cisco.com/">Cisco</a> is not a lead vendor in this space.  They are a <i>niche</i> vendor for ADC.  Having had personal struggles with Cisco&#8217;s kit in ADC, it&#8217;s refreshing to see them (finally) pushed to the appropriate market segment.
<p>Ultimately, enterprise&#8217;s should <b>not</b> be deploying Cisco equipment in ADC.  Look to the <i>visionary</i> vendors for the right solution.
  </li>
<li> A personal one this, but it&#8217;s nice to see <a href="http://www.zeus.com/">Zeus Technology</a> still holding firm in the market-leading visionary space.   This site uses ADC from Zeus, and very fine it is too.
  </li>
</ol>
<p><b><a name="1">[1]</a></b> In response to the comment left by <a href="http://www.theapplicationdeliverynetwork.com/?p=48">Lori</a> I feel I must clarify my comments and also raise some of my own.</p>
<ol>
<li>To clarify: I am <b>not</b> asserting that BigIP&#8217;s feature-set isn&#8217;t as rich as Gartner, and F5, claim. Indeed, it is &#8211; and more!  My two major issues with BigIP are, as I blogged previously:
<ul>
<li>The clunky iRules scripting language which Gartner highlights for BigIP, but fails to mention the perl-like, and intuitive, TrafficScript language of ZXTM.  iRules is not an easy language to pick up in my opinion.  I would love to hear other sysadmin and programmers&#8217; opinions on this.
             </li>
<li>The non-intuitive interface makes using the feature richness of the product that little bit harder.  As a ardent supporter of the command line, I&#8217;m the first person to appreciate GUI intuitiveness does not necessarily equal feature richness.  However, F5 has a feature rich product, but they can do better with their GUI.  That was the point I was making. Apologies if the original article was written in haste.
<p>Yes, as Lori notes:<br />
<blockquote>Intuitiveness is subjective, not objective, and not a good measuring stick. if intuitiveness was a primary buying criteria no one would ever purchase anything Cisco</p></blockquote>
<p> However, I feel this doesn&#8217;t address the real reason people buy Cisco.  It&#8217;s not because it&#8217;s &#8216;better&#8217; than their competitors&#8217; products,   but simply because you don&#8217;t get fired for buying Cisco.  A depressing statement, but true.  </p>
<p>Ask yourself, would you deploy Cisco&#8217;s CSS over ZXTM/Radware/Akamai in an SME DC?  Well, lots of firms do.  Why? Because you won&#8217;t get fired for doing so.  If you use a smaller player, you&#8217;re perceived to be taking a business risk. Lots of firms don&#8217;t suffer from this thinking, but some do.  This is only my personal experience, I would appreciate other people&#8217;s experiences.
            </li>
</ul>
</li>
<li>
Interestingly, Lori writes that<br />
<blockquote> BIG-IP and ZXTM are not competitors in the same market segment, primarily because BIG-IP is over-kill for the SMB market in which ZXTM continues to dominate and target. These two products donâ€™t compete directly, and both companies acknowledge that willingly&#8230;</p></blockquote>
<p>  I have no issue with this comment.  It&#8217;s a pleasure to read, in fact.  I have been struggling for months now to set different expectations between these two different products in my day-to-day role.
</li>
</ol>
<p>Lori, your post has highlighted that I wrote my original article in haste.  I hope that the above clarifies and appreciates the concerns you raised.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2007/05/08/gartner-magic-quadrant-adc-2007/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OSSEC rulesets for Zeus Webserver and ZXTM</title>
		<link>http://www.cjbuckley.net/blog/2007/05/04/ossec-ruleset-for-zeus-webserver-and-zxtm/</link>
		<comments>http://www.cjbuckley.net/blog/2007/05/04/ossec-ruleset-for-zeus-webserver-and-zxtm/#comments</comments>
		<pubDate>Fri, 04 May 2007 13:27:04 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[intrusion prevention]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[ossec]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/2007/05/04/ossec-ruleset-for-zeus-webserver-and-zxtm/</guid>
		<description><![CDATA[OSSEC is a leading Intrusion Detection System for Enterprise UNIX(-like) and Windows platforms.  OSSEC is, by quite a way, the most innovative and customisable IDS product I have worked with.  
As a result of it&#8217;s ease of customisations, the developer Daniel B. Cid, with a little bit of help from myself, have implemented [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ossec.net/">OSSEC </a>is a <a href="http://www.linuxworld.com/news/2007/031207-top-5-security.html">leading Intrusion Detection System</a> for Enterprise UNIX(-like) and Windows platforms.  OSSEC is, by quite a way, the most innovative and customisable IDS product I have worked with.  </p>
<p>As a result of it&#8217;s ease of customisations, the developer Daniel B. Cid, with a little bit of help from myself, have implemented supported rule-sets for my former employers&#8217; products: <a href="http://www.zeus.com/products/zws">Zeus WebServer</a> and <a href="http://www.zeus.com/products/zxtm">ZXTM</a>.  Both products are widely deployed across many enterprise environments; adding specific rulesets for their software is one which I hope assists all fellow sysadmins tasked with running infrastructure using Zeus software. </p>
<h2>Download</h2>
<p>You can download the latest snapshot of OSSEC from <a href="http://www.ossec.net/files/snapshots/">this page</a>.  </p>
<h2>Implementation</h2>
<p>After running <code>install.sh</code> you can add the Zeus rulesets as you would any other supported rule set. </p>
<p><b>Example:</b></p>
<p>     &lt;localfile&gt;<br />
     &lt;log_format&gt;syslog&lt;/log_format&gt;<br />
     &lt;location&gt;/usr/local/zeus/zxtm/zxtm/log/errors&lt;/location&gt;</p>
<p>     &lt;localfile&gt;<br />
     &lt;log_format&gt;syslog&lt;/log_format&gt;<br />
     &lt;location&gt;/usr/local/zeus/zws/web/log&lt;/location&gt;</p>
<h2>Alerts</h2>
<p>Below you can clearly see the ruleset alerting you, quickly and efficiently, to a failure.<br />
&nbsp;<br />
<a href='http://www.cjbuckley.net/blog/wp-content/uploads/2007/05/ossec-monitor.png' title='OSSEC IDS Web Monitor'><img src='http://www.cjbuckley.net/blog/wp-content/uploads/2007/05/ossec-monitor.png' alt='OSSEC IDS Web Monitor' /></a></p>
<h2>Help..</h2>
<p>Any questions, just ask!  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2007/05/04/ossec-ruleset-for-zeus-webserver-and-zxtm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Achieving an Application upgrade, whilst still maintaining High Availability</title>
		<link>http://www.cjbuckley.net/blog/2007/04/23/achieving-an-application-upgrade-whilst-still-maintaining-high-availability/</link>
		<comments>http://www.cjbuckley.net/blog/2007/04/23/achieving-an-application-upgrade-whilst-still-maintaining-high-availability/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 14:36:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/2007/04/23/achieving-an-application-upgrade-whilst-still-maintaining-high-availability/</guid>
		<description><![CDATA[Upgrading part of your back-end application is a task that must be planned and implemented meticulously.  This site has recently under-gone a code change to its Gallery application.  Here&#8217;s how this site was able to perform a full code upgrade, as well as still achieving full availability across both servers.
Considerations

Backup, backup, backup! We [...]]]></description>
			<content:encoded><![CDATA[<p>Upgrading part of your back-end application is a task that must be planned and implemented meticulously.  This site has recently under-gone a code change to its <a href="http://gallery.menalto.com/">Gallery</a> application.  Here&#8217;s how this site was able to perform a full code upgrade, as well as still achieving full availability across both servers.</p>
<h2>Considerations</h2>
<ul>
<li><b>Backup, backup, backup!</b> We must make sure that our backups are held securely and cannot be corrupted.  This database is small enough to use mysqldump, but incremental backups of the SQL binaries is a serious consideration in large scale enterprises</li>
<li><b>Gallery is clustered across two Apache webservers:</b> Any changes to my document root, will be quickly replicated across to the other webserver.  This must not be allowed to happen until regression testing has taken place across one production server.</li>
<li><b>MySQL replication:</b> any code changes rolled out will immediately be replicated across the MySQL cluster.   If the application upgrade fails, it will be a lot easier to roll back only one database.  We must be careful to not push this change across our databases until regression tested across one production box.</li>
<li><b>What role does our Load Balancer play?</b>  What rules do we need to implement to make sure traffic is directed accordingly&#8230;</li>
<li>For file replication, this site uses <a href="http://en.wikipedia.org/wiki/Rsync">rsync</a>.  To ensure code consistency during the maintenance window, this replication must be disabled. </li>
</ul>
<h2>Maintenance Actions</h2>
<ol>
<li>Perform a full backup of both the original Gallery code and the MySQL DB Binaries</li>
<li>Stop the replication slave running on Webserver 02.  The code change will be rolled out across Webserver 01, so it&#8217;s important no changes are replicated within our maintenance window.</li>
<li>How to deal with our traffic across our load balancers?  This will be covered in the next section.  Ultimately, we want all requests that <b>do not</b> contain /gallery/ in the path to be spread across all webservers; all requests for /gallery/ must be directed across the node not under maintenance (webserver 02) </li>
<li>Stop the rsync file replication process on both servers.</li>
</ol>
<h2>Load Balancer specifics</h2>
<ul>
<li>Create a rule that distributes requests for all requests that <b>do not</b> equal /gallery/ across all available webservers</li>
<pre>
if( ! string.contains( $path, "gallery" ) ) break;
</pre>
<li>Make sure that my IP address can reach the maintenance pool</li>
<pre>
   if ( ! string.ipmaskmatch( $ip, "my.ip.address/32" ) ) {
        pool.use( "Sticky Pool" );
}     else {
        pool.use( "Maintenance" ); }
</pre>
</ul>
<p>This ensures that my IP address reaches a pool containing one specific node &#8211; webserver01.  All other requests are load-balanced to the &#8216;Sticky Pool&#8217; which includes two nodes &#8211; webserver01 &#038; 02, however 01 is put in a draining node (no further connections being sent to it).  </p>
<p>So, both quickly and easily, using <a href="http://www.zeus.com/products/zxtm/manage/trafficscript">ZXTM&#8217;s trafficscript</a> we&#8217;re able to create rules to efficiently distribute traffic appropriately.   </p>
<p><b>End Result:</b> All requests are still load-balanced across both webservers, with the exception of requests for $path == /gallery/.  These requests are sent to one specific node (not under maintenance).  This allows the webmaster (me!) to upgrade the code base, and regression test, across webserver 01.</p>
<h2>Code Upgrade</h2>
<p>Load Balancer rules enabled, we can safely proceed with our code upgrade.  This is simply a matter of uploading the new codebase across the existing one.  We can then proceed to the <a href="http://www.cjbuckley.net/gallery/">Gallery site</a> knowing that we will go to webserver 01; able to both test and perform the application upgrade as applicable.  This completed, and tested, we can now restart our rsync daemons, and allow the MySQL slave to start again on webserver 02.  Within seconds the code change has been pushed out across the remaining webserver.  </p>
<p><b>End Result:</b> A complete success.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2007/04/23/achieving-an-application-upgrade-whilst-still-maintaining-high-availability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trafficscript coding</title>
		<link>http://www.cjbuckley.net/blog/2006/08/23/trafficscript-coding/</link>
		<comments>http://www.cjbuckley.net/blog/2006/08/23/trafficscript-coding/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 18:48:57 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[TrafficScript]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/?p=43</guid>
		<description><![CDATA[As part of my day to day duties, i&#8217;ve written numerous scripts to enhance an end-users&#8217; web experience when web-services are managed by Zeus&#8217; Extensible Traffic Manager solution.  Trafficscript is a fabulously rich and varied scripting language (if you are competent in bash or perl you will have no problems!) that allows your web [...]]]></description>
			<content:encoded><![CDATA[<p>As part of my day to day duties, i&#8217;ve written numerous scripts to enhance an end-users&#8217; web experience when web-services are managed by <a href="http://www.zeus.com/products/zxtm/">Zeus&#8217; Extensible Traffic Manager</a> solution.  <a href="http://www.zeus.com/products/zxtm/traffic_management/trafficscript">Trafficscript</a> is a fabulously rich and varied scripting language (if you are competent in bash or perl you will have no problems!) that allows your web services to finally act as you want them to! No more playing around with fiddly Apache mod_rewrite rules!</p>
<p>The articles i have written are contained on <a href="http://knowledgehub.zeus.com/?author=36">Zeus&#8217; Knowledgehub</a>.  Any questions, just ask!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2006/08/23/trafficscript-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transparent 301 Re-Directs</title>
		<link>http://www.cjbuckley.net/blog/2006/08/08/transparent-301-re-directs/</link>
		<comments>http://www.cjbuckley.net/blog/2006/08/08/transparent-301-re-directs/#comments</comments>
		<pubDate>Tue, 08 Aug 2006 03:26:28 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[TrafficScript]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[zeus]]></category>
		<category><![CDATA[zxtm]]></category>

		<guid isPermaLink="false">http://www.cjbuckley.net/blog/?p=11</guid>
		<description><![CDATA[For vanity search engine purposes i&#8217;ve written a script that re-directs a client request for http://cjbuckley.net/ to http://www.cjbuckley.net/.   It&#8217;s important to do this so that google has one site index for your site, indeed, google honours 301 permanent re-directs for this very requirement!
The below script is written in Trafficscript language.  What&#8217;s really [...]]]></description>
			<content:encoded><![CDATA[<p>For <s>vanity</s> search engine purposes i&#8217;ve written a script that re-directs a client request for <a href="http://cjbuckley.net/">http://cjbuckley.net/</a> to <a href="http://www.cjbuckley.net/">http://www.cjbuckley.net/</a>.   It&#8217;s important to do this so that google has one site index for your site, indeed, <a title="Google employee moves his website using 301" href="http://www.somebits.com/weblog/tech/movingUrlResults.html">google</a> honours 301 permanent re-directs for this very requirement!</p>
<p>The below script is written in <a href="http://www.zeus.com/products/zxtm/traffic_management/trafficscript">Trafficscript</a> language.  What&#8217;s really useful about this script is that a client request for <u>any</u> URL not pre-fixed by www. is catenated and 301&#8242;d back to the server, prepended with the original path request.</p>
<pre>
# Cache Host header being issued by the client
$host = http.getHeader( "Host" );

# This line passes both the path and query string to $url,
# meaning that a request for /path/to/output?is-here.php
# is placed into the below variable.
$url = http.getRawURL();

# log.info( "url: ".$url ); #  Optional log output
# Use a Perl Compatible regular expression to match our domain name.
if( string.regexmatch( $host, "^domain-name$" ) ) {

# Re-write the variable cached in $host to include a prefix of 'www.'
$location = string.regexsub( $host, "domain-name.com", "www . ".$host );
http.sendResponse( "301 Moved Permanently", "text/html", "",
"Location: http://".$location . $url);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cjbuckley.net/blog/2006/08/08/transparent-301-re-directs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
