[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: squid отдает данные из кеша через раз обновляя данные?



>> Уважаемое сообщество, прошу помощи в понимании следующей ситуации.
>>
>> Есть программа на С под задачу - зайти через прокси в интернет (squid
>> 2.6STABLE12 + ad), забрать файл с данными (три цифры внутри файла) и
>> положить его в папку. И вот так с частотой 1 раз в секунду.
>>
>> Вчера наблюдал ситуацию, когда в консоль программа писала значения
>> один раз корректные, затем нули, затем опять корректные значения.
>
> попали в момент перезаписи файла? он ведь и перезаписывается раз в секунду как раз наверно?


Узнал следующее. Данные формирует php скрипт, о перезаписи файла речь не идет.


>
>> Данные у источника в интернете не изменялись "в нуль", это
>> проверялось. Лечилось перезапуском программы.
>>
>> Программист утверждает, что программа тупая как валенок. Забирает по
>> http то, что ей отдает сервер.
>
> что отдаёт программа когда в файле один только EOF?


Байт в байт возвращает, что получил. Данные парсятся как раз по
управляющим байтам.


>
>> В прочем, это видно в консоли от
>> запроса до ответа и содержимого. И по этой причине грешу на squid, как
>> промежуточное звено, что он то отдавал данные из интернета, затем из
>> кеша, опять из интернета и затем опять из кеша. А в кеше были
>> "нулевые" значения скорей всего.
>
> сквид кэш делает не от фонаря а на основании expires ответа от сервера


Почитал подробней о http.

Вот заголовки которые получаю без прокси дома:

wget -S http://***.ru/index1.php;

Запрос HTTP послан, ожидается ответ...
  HTTP/1.0 200 OK
  Date: Fri, 23 Jul 2010 10:27:02 GMT
  Server: Apache
  Vary: Accept-Encoding
  Content-Length: 9
  Content-Type: text/html; charset=WINDOWS-1251
  X-Cache: MISS from turbine3.ht-systems.ru
  Connection: keep-alive
Длина: 9 [text/html]
Сохраняется в каталог: `index1.php.4'.

100%[====================================================>] 9
 --.-K/s   в 0s

2010-07-23 14:27:02 (2,17 MB/s) - `index1.php.4' сохранён [9/9]

$ cat  index1.php.4

437
262
75


А вот, что получаю через прокси:

wget -S http://***.ru/index1.php;

Запрос Proxy послан, ожидается ответ...
  HTTP/1.0 200 OK
  Date: Fri, 23 Jul 2010 10:10:34 GMT
  Server: Apache
  Vary: Accept-Encoding
  Content-Length: 14
  Content-Type: text/html; charset=WINDOWS-1251
  X-Cache: MISS from turbine3.ht-systems.ru
  X-Cache: MISS from proxy
  X-Cache-Lookup: MISS from proxy:3128
  Via: 1.0 proxy:3128 (squid/2.6.STABLE12)
  Proxy-Connection: keep-alive
Длина: 14 [text/html]
Сохраняется в каталог: `index1.php.3'.

100%[====================================================>] 9
--.-K/s   в 0s

$ cat  index1.php.3

437
262
75

При выполнении  wget -N http://***.ru/index1.php; данные всегда новые
- не кешируются значит?

Поля в заголовке Last-Modified в обоих случаях нет. Как сквид работает
с данными без этого поля?


>
>> Кстати говоря таких потоков передачи 3 и все они глючили как описано выше.
>>
>> Подскажите, кто имеет опыт работы со сквидом. Такой глюк(?) с прокси возможен?
>> Программисту софтины или админу сквида предъявлять претензии?
>
> дизайнеру всей системы, похоже


Угу. Или переделывать и усложнять, или допиливать.

Reply to: