cancel
Showing results for 
Search instead for 
Did you mean: 

Pulse Secure vADC

Sort by:
This video gives a general overview of Load Balancing with Stingray as well as recommendations on what Load Balancing algorithms to use depending on the situation.
View full article
In this hands-on technical video, Vinay Reddy, Senior Technical Marketing Engineer at Riverbed Technology, takes you through a step-by-step demo of Stingray Traffic Manager in Amazon AWS Cloud, including: Exploring AWS Marketplace Launching Stingray from the Amazon console Use Amazon console to choose instance types and deployment configuration Open the Stingray admin console and prepare to configure nodes and virtual servers
View full article
Stingray MSM is an integrated management solution that gives a coordinated view of your application delivery fabric, which may span multiple, geographically distributed, data centers and cloud-based environments. As an advanced feature, MSM makes it easier to manage clusters of StingrayTM Traffic Manager deployments, greatly reducing the complexity of multi-site installations. In addition, the integrated global load balancing (GLB) feature allows you to control where traffic is directed throughout the world, based on factors such as geographic location and data center load.
View full article
For this example the client requests come from the CDN acting as a proxy. We don’t want to impose any limits on the CDN requests coming to the site, but we do want to stop abusive users.     In this case all client requests that we want to limit from the CDN Proxy contain a HTTP Header; for this example we’ll say True-Client-IP.  We will use the "True-Client-IP" header value as the context value for the rate class, and we already have a rate class named "clients".   A context value on a rate clasee uses a new rate class which inherits all of the rate settings from the named rate class. All connections called with the same 'context' value use the same new rate class. This allows you to shape connections based on arbitary data, such as a user name or source IP address, shaping connections from different users or source IPs independently.     #Check and run if the True-Client-IP header exists   if( !http.headerExists( "True-Client-IP" ) ){      #Use the predefined rate class named "clients"      #Use the header vale to define a context to the rate class    rate.use( "clients", http.getHeader ("True-Client-IP" ) );  }
View full article
A great usage of TrafficScipt is for managing and inserting widgets on to your site.  The attached TrafficScript code snippet inserts a Twitter Profile Widget to your site, as described here (sign in required).   To use it.   In the Stingray web interface navigate to Catalogs -> Rules and s croll down to Create new rule .  Give it a name such as Twitter Feed and select Use TrafficScript Language.  Click Create Rule to create the rule. Copy and paste the code and save the rule. Modify the $user and $tag as described in the TrafficScript code snippet.  $user is your Twitter username and $tag specifies where in the web page the feed should go. Navigate to the Rules page of your Virtual Server ( Services -> Virtual Servers -> <your virtual server> -> Rules) and add Twitter Feed as a Response Rule   Reload your webpage and you should see the Twitter feed.   # # This TrafficScript code snippet will insert a Twitter Profile widget # for user $user as described here: # https://twitter.com/about/resources/widgets/widget_profile # The widget will be added directly after $tag. The resultant page will # look like: # ... # <tag> # <Twitter feed> # ... # # Replace 'riverbed' with your Twitter username $user = "riverbed"; # # You can keep the tag as <!--TWITTER FEED--> and insert that tag into # your web page or change $tag to some existing text in your web page, ie # $tag = "Our Twitter Feed:" $tag = "<!--TWITTER FEED-->"; # Only modify text/html pages if( !string.startsWith( http.getResponseHeader( "Content-Type" ), "text/html" )) break; # # The actual code that will be inserted. Various values such as color, # height, width, etc. can be changed here. # $html = "\n\ <script charset=\"utf-8\" src=\"http://widgets.twimg.com/j/2/widget.js\"></script> \n \ <script> \n \ new TWTR.Widget({ \n \ version: 2, \n \ type: 'profile', \n \ rpp: 4, \n \ interval: 30000, \n \ width: 250, \n \ height: 300, \n \ theme: { \n \ shell: { \n \ background: '#333333', \n \ color: '#ffffff' \n \ }, \n \ tweets: { \n \ background: '#000000', \n \ color: '#ffffff', \n \ links: '#eb8507' \n \ } \n \ }, \n \ features: { \n \ scrollbar: false, \n \ loop: false, \n \ live: false, \n \ behavior: 'all' \n \ } \n \ }).render().setUser('".$user."').start(); \n \ </script><br>\n"; # This section inserts $html into the HTTP response after $tag $body = http.getResponseBody(); $body = string.replace( $body, $tag, $tag. $html); http.setResponseBody( $body );   Give it a try and let us know how you get on!   More Twitter solutions:   Traffic Managers can Tweet Too TrafficScript can Tweet Too
View full article
(Originally posted Aug 19 2009) Accessing Zeus' Control API from Scala is a relatively straightforward process. It is almost identical to the process you use for Java. Currently the best way to access the control API is using the Apache axis library which you can obtain here . You will also need the WSDL files describing the API. To download the WSDL files go to the Zeus Admin Server then to the online help, and look for the "Zeus Control API WSDL Files" link on the 'Manuals' page. One final dependency that needs to be satisfied is that we need the javamail package, which can be found here . Once you have downloaded and extracted these files we need to convert the WSDL files to Java code, compile them and package them up. On a Unix system you need to issue these commands, > for F in wsdl/ .wsdl ; do java –cp :axis-1_4/lib/ :javamail-1.4.1/lib/* \ org.apache.axis.wsdl.WSDL2Java $F ; done mkdir obj javac –d obj com/zeus/soap/zxtm/ / .java cd obj jar cf ZXTM-API.jar com/zeus This will produce ZXTM-API.jar which you will need to add to your classpath. We are ready to write a Scala program to list the running Virtual Servers. This mirrors our Java example quite closely which you can look at <a href="http://www.zeus.com/community/code-samples/list-running-virtual-servers-using-scala#" target=_blank>here</a> .</p> listVS.scala import com . zeus . soap . zxtm . _1_0 . _ ; import java . security . Security ; import java . security . KeyStore ; import java . security . Provider ; import java . security . cert . X509Certificate ; import javax . net . ssl . ManagerFactoryParameters ; import javax . net . ssl . TrustManager ; import javax . net . ssl . TrustManagerFactorySpi ; import javax . net . ssl . X509TrustManager ; object VSList { def main ( args : Array [ String ]) { Security . addProvider ( new MyProvider ) Security . setProperty ( "ssl.TrustManagerFactory.algorithm" , "TrustAllCertificates" ) val vsl = new VirtualServerLocator vsl . setVirtualServerPortEndpointAddress ( "https://user:pass@localhost:9090/soap" ) val port = vsl . getVirtualServerPort val vs_names = port . getVirtualServerNames val enabled_vs = port . getEnabled ( vs_names ) for ( i <- 0 until vs_names . length ) if ( enabled_vs ( i ) ) println ( vs_names ( i )) } } // Below is TrustManager boiler-plate object MyTrustManagerFactory extends TrustManagerFactorySpi { override def engineInit ( keystore : KeyStore ) {} override def engineInit ( mgrparams : ManagerFactoryParameters ) {} override def engineGetTrustManagers = { Array [ TrustManager ]( new MyX509TrustManager ) } } class MyX509TrustManager extends X509TrustManager { override def checkClientTrusted ( chain : Array [ X509Certificate ], authType : String ) {} override def checkServerTrusted ( chain : Array [ X509Certificate ], authType : String ) {} override def getAcceptedIssuers : Array [ X509Certificate ] = null } class MyProvider extends Provider ( "MyProvider" , 1.0 , "Trust certificates" ) { put ( "TrustManagerFactory.TrustAllCertificates" , MyTrustManagerFactory . getClass . getName ) } Running the example is pretty simple, first compile it, > scalac -classpath ZXTM-API.jar listVS.scala then run it, > scala -classpath ZXTM-API.jar listVS Main website Mail servers Test site
View full article
If you're running Apache HTTPD, you might have seen the recent advisory (and update) which can cause "significant CPU and memory usage" by abusing the HTTP/1.1 Range header.   If you're using Stingray Application Firewall simply update your baseline rules and you will be immediately protected. Otherwise, you can use TrafficScript to block this attack:   # Updated: Remove (if present) an old name that Apache accepts, MSIE 3 vintage http.removeHeader( "Request-Range" ); $r = http.getHeader( "Range" ); if( $r && string.count( $r, "," ) >= 5 ) { # Too many ranges, refuse the request http.sendResponse( "403 Forbidden", "text/plain", "Forbidden\n", "" ); }   This simply returns a 403 Forbidden response for any request asking for more than 5 ranges (at least 5 commas in the Range header). This is in line with the advisory's suggested mitigation: we don't block multiple ranges completely because they have legitimate uses, such as PDF readers that request parts of the document as you scroll through it, and the attack requires many more ranges to be effective.
View full article