First of all, I'm sorry I'm a newbie in esi tags and it's being so confusing 
for me….



On 17/05/2012, at 21:41, Kit Chan wrote:

> It seems that the plugin is not getting any response body from the first 
> request. 
> 
>> http://ori.servotic.com/esi/esi.php?p
> 
> 
> So it thinks that there is no esi markup to interpret.


This is the content of esi.html:

<HTML>
<BODY>
The time is: <esi:include src="../date.php"/>
at this very moment.
</BODY>
</HTML>

and  this is the date.php

<?php
        echo date('l jS \of F Y h:i:s A');
?>

In the vhost configuration I add the X-Esi header like this:

        <Directory /DATA/public/site/html/esi>
                Header set Cache-control no-cache
                Header set X-Esi 1
        </Directory>



> 
> Do you have output of squid.blog or squid.log? It should show two requests of 
> status 200 if it is all good and successful

1337286567.313 347 10.6.0.6 TCP_MISS/200 296 GET 
http://www.servotic.com/esi/esi.html - DIRECT/ori.servotic.com text/html 
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 
Firefox/12.0  -


> 
> Also what is the corresponding line in remap.config? And what is the actual 
> url in the esi include? What is the url of the actual request from user? Your 
> esi include url in the first request cannot be arbitrary and must be handled 
> by one of the lines in remap.config

In remap.config:

map http://www.servotic.com/ http://ori.servotic.com/ @plugin=conf_remap.so 
@pparam=/opt/trafficserver/etc/trafficserver/clientes/servotic.conf 

In my plugin.config

esi.so


The url that i asking for is http://www.servotic.com/esi/esi.html but pointer 
to my staging enviroment, I mean this request is not working in the production 
enviroment.

> 
> Thanks
> Kit
> 
> Sent from my iPhone
> 
> On May 17, 2012, at 6:12 PM, Jorge Román Novalbos <jro...@linux-it.es> wrote:
> 
>> You're right that was one of my problem but it still doesn't work. This is 
>> the traffic.out output in debug mode while a esi request is processing:
>> 
>> 
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [isInterceptRequest] Skipping external request
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [globalHookHandler] handling read request header event...
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [globalHookHandler] Not setting up intercept
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [isInterceptRequest] Skipping external request
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [globalHookHandler] handling cache lookup complete event...
>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) 
>> [isCacheObjTransformable] cache object's status is 0; not transformable
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) 
>> [isInterceptRequest] Skipping external request
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) 
>> [globalHookHandler] handling read response header event...
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) 
>> [isCacheObjTransformable] cache object's status is 0; not transformable
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) 
>> [getClientState] Got request URL [http://ori.servotic.com/esi/esi.php?p]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Accept]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header 
>> [Accept-Encoding]
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) 
>> [getClientState] Client accepts gzip encoding; will compress output
>> [May 17 18:10:36.385] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header 
>> [Accept-Encoding]
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: 
>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header [Connection]
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) 
>> [getServerState] Not retaining 'X-Esi' header
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) 
>> [getServerState] Not retaining 'vary: accept-encoding' header
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) 
>> [getServerState] Not retaining 'content-encoding: gzip' header
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) 
>> [getServerState] Not retaining 'Content-length' header
>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) 
>> [addTransform] Added transformation (0x0x2b6c90dcd480)
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [init] Set input data type to [GZIPPED_ESI]
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] initialized continuation data
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not within 
>> fetch event id range [10000, 10000)
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] handling TS_EVENT_IMMEDIATE...
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] upstream VC has 126 bytes 
>> available to read
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] Added chunk of 126 bytes 
>> starting with [] to parse list
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] Consumed 126 bytes from upstream 
>> VC
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] Completed reading input...
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_processor_0x2b6c90dcd480) [completeParse] Implicit call to 
>> start()
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_parser_0x2b6c90dcd480) [_setup] Returning true for empty data
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_parser_0x2b6c90dcd480) [_completeParse] No data to parse!
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_processor_0x2b6c90dcd480) [_handleParseComplete] Parsed ESI 
>> document with 0 nodes
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] data ready; going to process doc
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_processor_0x2b6c90dcd480) [process] ESI processed document of 
>> size 0 starting with [(null)]
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] ESI processor output document of 
>> size 0 starting with [(null)]
>> [May 17 18:10:36.386] Server {47745215289088} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformData] Compressed document from size 0 
>> to 20 bytes
>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) 
>> [modifyResponseHeader] Removing header with name [Cache-Control]
>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) 
>> [modifyResponseHeader] Removing header with name [X-Esi]
>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) 
>> [modifyResponseHeader] Removing header with name [Age]
>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) 
>> [modifyResponseHeader] Inspected client-bound headers
>> [May 17 18:10:36.387] Server {47745213183744} DIAG: 
>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 103 not within 
>> fetch event id range [10000, 10000)
>> [May 17 18:10:36.387] Server {47745213183744} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] shutting down transformation
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [checkXformStatus] Vconn closed
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not within 
>> fetch event id range [10000, 10000)
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Transformation closed. 
>> Post-processing...
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Processing is complete, not 
>> processing current event 1
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [transformHandler] transformation closed; 
>> cleaning up data...
>> [May 17 18:10:36.398] Server {47745194728736} DIAG: 
>> (plugin_esi_0x2b6c90dcd480) [~ContData] Destroying continuation data
>> 
>> 
>> On 17/05/2012, at 17:23, Kit Chan wrote:
>> 
>>> Without looking too deep into all info, i think the problem is that u need 
>>> to have a response header of
>>> 
>>> X-Esi: 1
>>> 
>>> with esi.html
>>> 
>>> Sent from my iPhone
>>> 
>>> On May 16, 2012, at 6:01 PM, Jorge Román Novalbos <jro...@linux-it.es> 
>>> wrote:
>>> 
>>>> I have the plugin compiled.
>>>> 
>>>> Finally I downloaded the sources from 
>>>> https://github.com/shukitchan/trafficserver-plugins/ with the problems 
>>>> fixes.
>>>> 
>>>> Now I'm trying to test the plugin.
>>>> 
>>>> For this test i have created two file:
>>>> 
>>>> - esi.html
>>>> 
>>>> <HTML>
>>>> <BODY>
>>>> The time is: <esi:include src="http://www.example.com/esi.php"/>
>>>> at this very moment.
>>>> </BODY>
>>>> </HTML>
>>>> 
>>>> - esi.php
>>>> 
>>>> <?php
>>>> echo date('l jS \of F Y h:i:s A');
>>>> ?>
>>>> 
>>>> 
>>>> When i ask for esi.html the date is not displayed, so esi plugin it 
>>>> doesn't work. 
>>>> 
>>>> My question, ¿Do i have to activate the ESI in order to process that url? 
>>>> Sorry, but i can't find much documentation about how to implement ATS with 
>>>> ESI tags.
>>>> 
>>>> P.S: I have activated the plugin in plugin.config
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On 16/05/2012, at 12:22, Jorge Román Novalbos wrote:
>>>> 
>>>>> I am focusing with compile the pluging using the make command and i have 
>>>>> achieved some advances. 
>>>>> 
>>>>> I have installed some packages (libboost1.42-dev and gcc-4.4-locales) and 
>>>>> the error now is:
>>>>> 
>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make
>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc lib/*.cc 
>>>>> fetcher/*.cc -o esi.so
>>>>> compiling plugin.cc -> plugin.lo
>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g -pipe -Wall 
>>>>> -Werror -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing 
>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo
>>>>> En el fichero incluído de /usr/include/c++/4.4/ext/hash_map:60,
>>>>>             de lib/StringHash.h:29,
>>>>>             de lib/EsiProcessor.h:31,
>>>>>             de plugin.cc:34:
>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: #warning 
>>>>> This file includes at least one deprecated or antiquated header which may 
>>>>> be removed without further notice at a future date. Please use a 
>>>>> non-deprecated interface with equivalent functionality instead. For a 
>>>>> listing of replacement headers and interfaces, consult the file 
>>>>> backward_warning.h. To disable this warning use -Wno-deprecated.
>>>>> plugin.cc: In function ‘void cacheNodeList(ContData*)’:
>>>>> plugin.cc:453: error: conversión inválida de ‘const sockaddr*’ a 
>>>>> ‘unsigned int’
>>>>> plugin.cc:453: error: conversión inválida de ‘tsapi_cont*’ a ‘int’
>>>>> plugin.cc:453: error: no se puede convertir ‘TSFetchWakeUpOptions’ a 
>>>>> ‘tsapi_cont*’ para el argumento ‘5’ para ‘void TSFetchUrl(const char*, 
>>>>> int, unsigned int, int, tsapi_cont*, TSFetchWakeUpOptions, TSFetchEvent)’
>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ 
>>>>> -g -pipe -Wall -Werror -O3 -feliminate-unused-debug-symbols 
>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo
>>>>> make: *** [all] Error 1
>>>>> 
>>>>> 
>>>>> 
>>>>> I'm debuging the make command with strace but I'm not able to fix the 
>>>>> problem. Some advices?
>>>>> 
>>>>> 
>>>>> On 16/05/2012, at 10:51, Jorge Román Novalbos wrote:
>>>>> 
>>>>>> Hi all, 
>>>>>> 
>>>>>> I'm compiling the ESI plugin in my trafficserver-3.0.4. I downloaded the 
>>>>>> plugins from repository and i have followed the next steps:
>>>>>> 
>>>>>> 1. cd trafficserver-plugins/esi
>>>>>> 2. /opt/trafficserver/bin/tsxs -o esi.so -c serverIntercept.cc
>>>>>> 3 /opt/trafficserver/bin/tsxs -o esi.so -i
>>>>>> 4 edit /opt/trafficserver/etc/trafficserver/plugin.config an add esi.so
>>>>>> 5. Restart trafficserver daemon.
>>>>>> 
>>>>>> 
>>>>>> The traffic_server process never start because can't load the esi 
>>>>>> plugin. The traffic.out show these lines:
>>>>>> 
>>>>>> [May 16 10:31:49.263] Server {47992987118880} ERROR: unable to find 
>>>>>> TSPluginInit function 
>>>>>> '/opt/trafficserver-3.0.4/libexec/trafficserver/esi.so': 
>>>>>> /opt/trafficserver-3.0.4/libexec/trafficserver/esi.so: undefined symbol: 
>>>>>> TSPluginInit
>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: 
>>>>>> [LocalManager::pollMgmtProcessServer] Server Process terminated due to 
>>>>>> Sig 6: Aborted
>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR:  (last system 
>>>>>> error 2: No such file or directory)
>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: 
>>>>>> [Alarms::signalAlarm] Server Process was reset
>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR:  (last system 
>>>>>> error 2: No such file or director y)
>>>>>> 
>>>>>> Obviously something is wrong in esi pluging but I don't know if i am 
>>>>>> doing some step wrong.
>>>>>> 
>>>>>> I have tried to use the Makefile file in esi source but never compile. 
>>>>>> This is the error:
>>>>>> 
>>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make
>>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc lib/*.cc 
>>>>>> fetcher/*.cc -o esi.so
>>>>>> compiling plugin.cc -> plugin.lo
>>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g -pipe -Wall 
>>>>>> -Werror -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing 
>>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo
>>>>>> In file included from /usr/include/c++/4.4/ext/hash_map:60,
>>>>>>            from lib/StringHash.h:29,
>>>>>>            from lib/EsiProcessor.h:31,
>>>>>>            from plugin.cc:34:
>>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: #warning 
>>>>>> This file includes at least one deprecated or antiquated header which 
>>>>>> may be removed without further notice at a future date. Please use a 
>>>>>> non-deprecated interface with equivalent functionality instead. For a 
>>>>>> listing of replacement headers and interfaces, consult the file 
>>>>>> backward_warning.h. To disable this warning use -Wno-deprecated.
>>>>>> In file included from lib/EsiProcessor.h:35,
>>>>>>            from plugin.cc:34:
>>>>>> lib/Variables.h:29:33: error: boost/noncopyable.hpp: No existe el 
>>>>>> fichero o el directorio
>>>>>> In file included from lib/EsiProcessor.h:35,
>>>>>>            from plugin.cc:34:
>>>>>> lib/Variables.h:38: error: ‘boost’ has not been declared
>>>>>> lib/Variables.h:38: error: expected ‘{’ before ‘noncopyable’
>>>>>> lib/Variables.h:38: error: invalid type in declaration before ‘{’ token
>>>>>> cc1plus: warnings being treated as errors
>>>>>> lib/Variables.h:38: error: extended initializer lists only available 
>>>>>> with -std=c++0x or -std=gnu++0x
>>>>>> lib/Variables.h:40: error: expected primary-expression before ‘public’
>>>>>> lib/Variables.h:40: error: expected ‘}’ before ‘public’
>>>>>> lib/Variables.h:40: error: expected ‘,’ or ‘;’ before ‘public’
>>>>>> lib/Variables.h: In function ‘void EsiLib::populate(const char*, int)’:
>>>>>> lib/Variables.h:60: error: ‘_query_string_parsed’ was not declared in 
>>>>>> this scope
>>>>>> lib/Variables.h:61: error: ‘_parseQueryString’ was not declared in this 
>>>>>> scope
>>>>>> lib/Variables.h:63: error: ‘_query_string’ was not declared in this scope
>>>>>> lib/Variables.h: At global scope:
>>>>>> lib/Variables.h:70: error: non-member function ‘const std::string& 
>>>>>> EsiLib::getValue(const std::string&)’ cannot have cv-qualifier
>>>>>> lib/Variables.h:73: error: non-member function ‘const std::string& 
>>>>>> EsiLib::getValue(const char*, int)’ cannot have cv-qualifier
>>>>>> lib/Variables.h: In function ‘const std::string& EsiLib::getValue(const 
>>>>>> char*, int)’:
>>>>>> lib/Variables.h:75: error: ‘EMPTY_STRING’ was not declared in this scope
>>>>>> lib/Variables.h: At global scope:
>>>>>> lib/Variables.h:88: error: declaration of ‘~EsiLib::Variables’ as 
>>>>>> non-member
>>>>>> lib/Variables.h:90: error: expected unqualified-id before ‘private’
>>>>>> lib/Variables.h:99: error: storage size of ‘EsiLib::SIMPLE_HEADERS’ 
>>>>>> isn't known
>>>>>> lib/Variables.h:102: error: storage size of ‘EsiLib::SPECIAL_HEADERS’ 
>>>>>> isn't known
>>>>>> lib/Variables.h:105: error: storage size of 
>>>>>> ‘EsiLib::NORM_SIMPLE_HEADERS’ isn't known
>>>>>> lib/Variables.h:106: error: storage size of 
>>>>>> ‘EsiLib::NORM_SPECIAL_HEADERS’ isn't known
>>>>>> lib/Variables.h:114: error: non-member function ‘std::string& 
>>>>>> EsiLib::_toUpperCase(std::string&)’ cannot have cv-qualifier
>>>>>> lib/Variables.h:115: error: non-member function ‘int 
>>>>>> EsiLib::_searchHeaders(const std::string*, const char*, int)’ cannot 
>>>>>> have cv-qualifier
>>>>>> lib/Variables.h:117: error: non-member function ‘bool 
>>>>>> EsiLib::_parseDictVariable(const std::string&, const char*&, int&, const 
>>>>>> char*&, int&)’ cannot have cv-qualifier
>>>>>> lib/Variables.h:150: error: non-member function ‘const std::string& 
>>>>>> EsiLib::_getSubCookieValue(const std::string&, size_t)’ cannot have 
>>>>>> cv-qualifier
>>>>>> lib/Variables.h:154: error: expected declaration before ‘}’ token
>>>>>> lib/Variables.h:99: error: ‘EsiLib::SIMPLE_HEADERS’ defined but not used
>>>>>> lib/Variables.h:102: error: ‘EsiLib::SPECIAL_HEADERS’ defined but not 
>>>>>> used
>>>>>> lib/Variables.h:105: error: ‘EsiLib::NORM_SIMPLE_HEADERS’ defined but 
>>>>>> not used
>>>>>> lib/Variables.h:106: error: ‘EsiLib::NORM_SPECIAL_HEADERS’ defined but 
>>>>>> not used
>>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ 
>>>>>> -g -pipe -Wall -Werror -O3 -feliminate-unused-debug-symbols 
>>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc -o 
>>>>>> plugin.lo
>>>>>> make: *** [all] Error 1
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> could anybody  help me?
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Thanks to all developer for this amaizing software.
>>>>> 
>>>> 
>> 

Reply via email to