от KByte(19-02-2003)

рейтинг (-5)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

----------------------------------------------
Заглавие: Често задавани въпроси за Squid (част 3)
Автор: KByte
Всички права запазени: Security-BG
----------------------------------------------

[-Продължение-]
6.3 useragent.log
Squid подържа user agent log файлът ако:
1. При ./configure сте сложили --enable-useragent-log опция, и
2. ако сте посочили useragent_logът в конфигурационният файл.
От този лог можете да намерите информация за дистрибуцията и browser`ите на вашите клиенти.

6.4 store.log
Този лог файл пази обектите който са били изтрити.

6.5 hierarchy.log
Този файл съществува само в Squid-1.0. Форматът му е:
[date] URL peerstatus peerhost

6.6 access.log
Най използваният лог файл. В момента съществуват два формата зависещи от вашата конфигурация на emulate_httpd_log опция. По подразбиране, Squid ще го създаде в native лог файл формат. Ако тази опция е разрешена, Squid ще го създаде в common лог формат.Common лог съдържа информация за native логът. А native форматът съдържа информация за админа.

6.7 Кои файлове мога да изтрия със сигурност?
Никога не трябва да изтривате access.log, store.log, cache.log, или swap.state докато Squid работи. В Linux/Unix може да триете файлове докато са отворени от някой процес. Ако случайно изтриете swap.state докато Squid работа, може да го възстановите следвайки инструкциите в следващият въпрос. Ако изтриете някой друг файл докато Squid работи, не може да го възстановите. За да поддържате своите лог файлове използвайте rotate функцията на squid. Тази функция сменя лог файловете ден за ден. Текущите файлове се затварят и след това се преименуват.Използвайте тази команда:

squid -k rotate

6.8 Как да забраня лог файловете в Squid?
За да забраните access.log
    cache_access_log /dev/null      

За да забраните store.log
    cache_store_log none

За да забраните cache.log
    cache_log /dev/null  

7.0 Оперативни въпроси
7.1 Искам да рестартирам Squid с изчистено cache
Като за начало трябва да спрете Squid с тази команда:
    squid -k shutdown

Най бързият начин да рестартирате Squid с изчистено cache е да пишете върху swap.state файловете.
    echo "" > /cache1/swap.state

Другият начин, който е по дълъг е да пресъздадете всички cache_dir директории. Но първо трябва да преместите всички съществуващи директори. За пример опитайте        
    cd /cache1
    mkdir JUNK
    mv ?? swap.state* JUNK
    rm -rf JUNK &

И след това:
    squid -z

7.2 Как мога да изтрия пресъздадена cache директория?
Изтриването на съществуваща cache директория не е много трудно. Можете просто да смените squid.conf и след това да го преконфигурирате. Може да спрете да използвате cache_dir докато Squid работи.
1. Редактирайте squid.conf и изтриите cache_dir линията за cache директорията която искате да изтриете.
2. Ако нямате cache_dir линии значи Squid използва своята начална. Ще трябва да добавите нова cache_dir линия защото Squid ще продължи да използва старата. Може да добавите малка директория:
    /usr/local/squid/cachetmp ....

След като добавите нова директория трябва да стартирате squid -z.
3. Запомнете никога не триите cache директория на работещ Squid. Първо спрете Squid с:
    squid -k shutdown

4. След като изтриете старата cache_dir от squid.conf, Squid няма да използва тази директория.
5. Сега след като Squid вече не използва старата директория може да я изтриете с rm -rf.

7.3 Мога ли да използвам Squid на повече от един HTTP порт?
Да, можете да посочите друг порт в http_port линиите в вашият squid.conf файл.

8.0 Cache Manager
8.1 Какво е cache manager?
Cache manager`ът (cachemgr.cgi) е CGI е инструмент за статистика на squid.

8.2 Как да го включа?
Това зависи от web server`а които използвате. Конфигурирайте CERN и Apache server`ите да позвуляват използването на cachemgr.cgi.
EDITOR"S NOTE: readers are encouraged to submit instructions for configuration of cachemgr.cgi on other web server platforms, such as Netscape.

След като редактирате conf файловете, ще трябва да рестартирате web server`а. След като конфигурирате своят web server, ще се свържате към cache managera чрез web browser, използвайки адрес като този:
     http://www.example.com/Squid/cgi-bin/cachemgr.cgi/

8.3 Конфигурация на cache manager за CERN httpd 3.0
Трябва да добавите в conf файла:
       Protect         /Squid/*        MGR-PROT
       Exec            /Squid/cgi-bin/*.cgi    /usr/local/squid/bin/*.cgi

8.4 Конфигурация на cache manager за Apache
Първо, направете директория cgi-bin и я опишете с ScriptAlias в вашият Apache srm.conf файл ето така:
       ScriptAlias /Squid/cgi-bin/ /usr/local/squid/cgi-bin/

cachemgr.cgi може да бъде защитен с парола. Добавете в access.conf:
       
       AuthUserFile /path/to/password/file
       AuthGroupFile /dev/null
       AuthName User/Password Required
       AuthType Basic
       require user cachemanager
       

9.0 Как работи squid?
9.1 Кои са cachable обектите?
Един Internet обект е файл, документ или отзив на Интернет услуга като HTTP, FTP, или gopher.

9.2 Какъв е този ICP протокол?
ICP е протокол използван за комуникация между squid caches. ICP протоколът е определен в две Интернет RFC`та.

9.3 Каква е тази ftpget програма?
ftpget съществува единствено във версии 1.0 и 1.1. Това е програма наподобяваща ftp client.


9.4 Как Squid решава кога да презареди cache`иран обект?
Когато проверява новостта на обекта, ние пресмятаме тези стойности:
OBJ_DATE - това е времето когато обектът е бил сменен с оригиналният.
OBJ_LASTMOD - това е времето когато обектът е бил редактиран за последно.
OBJ_AGE покава колко обекта е имало когато е било възвърнато
       OBJ_AGE = NOW - OBJ_DATE

LM_AGE - колко е бил стар обектът преди да бъде възвърнат
       LM_AGE = OBJ_DATE - OBJ_LASTMOD

LM_FACTO е пропорционално на OBJ_AGE към LM_AGE:
       LM_FACTOR = OBJ_AGE / LM_AGE

Squid-1.1 и Squid-1.NOVM алгоритъм:

   if (CLIENT_MAX_AGE)
       if (OBJ_AGE > CLIENT_MAX_AGE)
           return STALE
   if (OBJ_AGE        return FRESH
   if (EXPIRES) {
       if (EXPIRES            return STALE
       else
           return FRESH
   }
   if (OBJ_AGE > CONF_MAX)
       return STALE
   if (LM_FACTOR        return FRESH
   return STALE

Kolics Bertold е направил отлична диаграма показвайки този процес.

Squid-2 алгоритъм:

   if (EXPIRES) {
       if (EXPIRES            return STALE
       else
           return FRESH
   }
   if (CLIENT_MAX_AGE)
       if (OBJ_AGE > CLIENT_MAX_AGE)
           return STALE
   if (OBJ_AGE > CONF_MAX)
       return STALE
   if (OBJ_DATE > OBJ_LASTMOD) {
       if (LM_FACTOR            return FRESH
       else
           return STALE
   }
   if (OBJ_AGE        return FRESH
   return STALE
[-Очаквайте продължение-]


<< FreeBSD: Серийни комуникации | FreeBSD: Мултимедия >>