Forum Discussion

Wiljam_98380's avatar
Wiljam_98380
Icon for Nimbostratus rankNimbostratus
Nov 04, 2009

Redirect From port :80 to :8000

I am trying to load balance people soft though our F5's and I am running into a problem. right now we have the production environment on the Cisco CSM's and it works normally.

 

 

When we move that VIP to the F5's we are not able to access the page unless we put :8000 behind the VIP.

 

 

My question is. Is there a way to convert traffic destine to 192.168.1.1:80 to say 192.168.1.1:8000.

 

 

We have a test environment that has the :8000 in the URL but we don't want to place that in the production URL. Everything on the Test environment works as desired.

 

 

Any help would be appreciated. Thanks

7 Replies

  • I would think there is a way within Peoplesoft to configure the app to use standard port 80 references to itself instead of port 8080 (even if it's listening on port 8080). If you do want to fix this with LTM, you could use an iRule which rewrites the response headers and content using a stream profile and STREAM::expression iRule:

     
     when HTTP_RESPONSE { 
      
         Rewrite redirects to remove the pool member's port 
         From http://devcentral.f5.com/wiki/default.aspx/iRules/RewriteHTTPRedirectPort.html 
      
         Check if server response is a redirect 
        if { [HTTP::header is_redirect]} { 
      
            Log original and updated values 
           log local0. "Original Location header value: [HTTP::header value Location],\ 
              updated: [string map ":[TCP::remote_port]/ /" [HTTP::header value Location]]" 
      
            Do the update, replacing :8080/ with / 
           HTTP::header replace Location [string map ":[TCP::remote_port]/ /" [HTTP::header value Location]] 
        } 
      
         Remove any instance of the pool member's port from response content 
         This requires adding a blank stream profile to the virtual server 
         From http://devcentral.f5.com/wiki/default.aspx/iRules/stream__expression 
      
         Check if response type is text 
        if {[HTTP::header value Content-Type] contains "text"}{ 
      
            Replace :8080/ with / 
           STREAM::expression "@:[TCP::remote_port]/@/@" 
      
            Enable the stream filter for this response only 
           STREAM::enable 
        } else { 
            Disable the stream filter by default 
           STREAM::disable 
        } 
     } 
     

    Aaron
  • I have no configuration control over the peoplesoft application.

     

    I am in the networking Group and only have access to the Cisco CSM's and the F5. Let me give you some more information and see if its makes it any clearer.

     

     

     

    Here is the CSM config. This work normally without problems. No Port :8000 required on the end of the VIP

     

     

    serverfarm PEOPLESOFT

     

    nat server

     

    nat client VLAN2-POOL

     

    predictor leastconns

     

    failaction purge

     

    real 192.168.9.189 8000

     

    inservice

     

    real 192.168.9.190 8000

     

    inservice

     

    health retries 30 failed 5

     

    probe HTTP-8000

     

    !

     

     

    !

     

    vserver PS-SERVER

     

    virtual 192.168.8.18 any

     

    serverfarm PEOPLESOFT

     

    sticky 5

     

    replicate csrp connection

     

    persistent rebalance

     

    inservice

     

    !

     

     

     

    This is the config as it is on the F5. Only way to get this to work is to use :8000 after the VIP.

     

     

     

    pool PEOPLESOFT {

     

    lb method member least conn

     

    action on svcdown reset

     

    monitor all HTTP-8000 and HTTP

     

    members {

     

    192.168.9.189:8000 {}

     

    192.168.9.190:8000 {}

     

    }

     

    }

     

     

    virtual PS-SERVER {

     

    mirror enable

     

    snatpool VLAN2_SNAT

     

    pool PEOPLESOFT

     

    destination 192.168.8.18:any

     

    persist source_addr-5

     

    profiles fastL4-CSM {}

     

    }

     

     

    snatpool VLAN2_SNAT {

     

    members {

     

    192.168.8.77

     

    192.168.8.78

     

    192.168.8.79

     

    }

     

    }

     

    monitor HTTP {

     

    defaults from http

     

    dest *:http

     

    }

     

    monitor HTTP-8000 {

     

    defaults from http

     

    dest *:8000

     

    }

     

     

    The goal is to use the VIP without :8000 at the end of it.
  • Why couldn't you create a vip on port 80 rather then ANY? The VIP setting you should have address translation and port translations checked.

     

     

    CB

     

  • Agreed CB. Also use an HTTP profile on this virtual. But before you go much further have a look at the deployment guide: http://www.f5.com/pdf/deployment-guides/f5-peoplesoft-dg.pdf

     

     

    This will help you see a general approach from the f5 perspective.

     

     

    -Matt
  • I appreciate all the replies. The problem that I was having was the port translation was not checked. i found that if you click it and then change the port it clears the click on port translation. but basically that was the one little box I was looking for. I just have to get it in Production and verify that I am right. Thanks for all the help!