trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Faysal Banna <degre...@gmail.com>
Subject Re: Migrating from squid
Date Fri, 27 Feb 2015 11:51:30 GMT
Sir .
you may have a look at https://issues.apache.org/jira/browse/TS-2643
and get an idea

Regards

On Fri, Feb 27, 2015 at 11:16 AM, Faysal Banna <degreane@gmail.com> wrote:

> Sir.
> the best way to use or migrate that feature is to do ts_lua .. i been
> doing it for a while now and it works perfectly
>
> it has everything one needs and you can at any time use os.execute from
> inside Lua script
> or you can use
>
> local handle = io.popen(command)local result = handle:read("*a")
> handle:close()
>
> if you need a result. and its asynchronous with the system so it won't block other operations
in ATS.
>
> its fast and pretty good to use.
>
>
> i use it lately to rate-limit incoming connections from origin servers and save bandwidth
for certain object downloads.
>
> if you need any assistance i may be able to help
>
> much regards
>
>
> On Fri, Feb 27, 2015 at 7:51 AM, J David <j.david.lists@gmail.com> wrote:
>
>> (Not sure if this is best for the user list or the dev list, as it's
>> development, but not of ATS per se.)
>>
>> Squid offers a feature called url_rewrite_program that can be used to
>> change its behavior based on client IP, requested URL, and various
>> other criteria.  It runs a bunch of copies of an external program and
>> passes information to and from them over pipes.
>>
>> Overall, ATS is a much better fit for our environment, but we are
>> heavily dependent on this feature of Squid.
>>
>> The short version of what we need to do is this:
>>
>> Based on a (ClientIP,RequestURL) pair, either choose a backend (by
>> name or IP) to handle the request *or* issue an arbitrary redirect
>> *or* return an HTTP error.
>>
>> According to the "squid config translation" docs, the equivalent for
>> url_rewrite_program is remap.config.  Since that does not actually
>> support external programs, it appears the intent is to use the
>> built-in remapping abilities to replicate the functionality of the
>> external program.  However, that is not always possible.
>>
>> The messy part that prevents us from doing that or hacking up a module
>> is that the external program we use with squid is ridiculously
>> complicated, pulling together information from multiple sources, all
>> of them dynamic, and gets linked to all kinds of libraries like MySQL,
>> memcached, and distributed message passing stuff.
>>
>> What is the best way to migrate this functionality to ATS?  The whole
>> big ball of wax seems like a really poor candidate for a built-in ATS
>> module due to all the external dependencies, many of which run
>> asynchronously and can block.  It seems really advantageous to seal
>> that off So what we probably really need is a pretty efficient way to
>> emulate squid's ability to call out to an external program.
>>
>> If that's true, has anyone done something similar?  Which ATS module
>> hook(s) would be the best to use, and how would we handle the need to
>> yield while we wait for the external program to work?
>>
>> Thanks for any advice!
>>
>
>
>
> --
> ============================
>          Faysal Banna
>  Meteorological Services
> Rafic Harriri International Airport
>       Beirut - Lebanon
>     Mob: +961-3-258043
> =============================
>



-- 
============================
         Faysal Banna
 Meteorological Services
Rafic Harriri International Airport
      Beirut - Lebanon
    Mob: +961-3-258043
=============================

Mime
View raw message