Имеем сервер, выполняющий роль шлюза и роль прокси. Fedora 13 i386. Имеем squid 7:3.1.10-1.fc13.
Время от времени squid вылетает.
В cache.log я заметил вот такую запись:
Код: Выделить всё
assertion failed: http.cc.1718: "strstr(url, request->urlpath.termedBuf())"
Знакомый программер помог расшифровать строчку 1718 в этой функции. Она читается примерно так:
Если в строке url не содержится подстрока request->urlpath, то сообщи в лог
Также, в логе messages есть вот такая строчка:
Код: Выделить всё
Squid Parent: child process 28006 exited due to signal 6 with status 0
В гугле я нарыл следующую информацию:
Если SQUID при запуске ругается подобным образом
Squid Parent : child process 2974 exited due to signal 6
то в 90% случаев это проблема связана со слишком большим размером лог файла. Попробуйте почистить /var/log/ squid / – мне помогло
Еще это может быть потому, что сквид не имеет прав доступа на запись в /var/log/ squid /
Однако, логи у меня небольшие, я их недавно чистил. И доступ туда тоже есть:
Код: Выделить всё
-rwx--x---. 1 squid squid 98M Мар 24 17:34 access.log
-rwx--x---. 1 squid squid 14M Мар 20 03:23 access.log-20110320.gz
-rwx--x---. 1 squid squid 71K Мар 24 17:16 cache.log
-rwx--x---. 1 squid squid 13K Мар 20 03:23 cache.log-20110320.gz
-rwx--x---. 1 squid squid 6,5K Мар 18 11:03 squid.out
Вот конфиг сквида:
Код: Выделить всё
# created by SAMS _sams_ 2011-3-24 17:16:1
# TAG: http_port
http_port 192.168.199.2:3128
visible_hostname 192.168.199.2
hierarchy_stoplist cgi-bin ?
# squid не будет кешировать динамически генерируемые страницы (поисковые сервера, некоторые другие серверы и чаты), а будет напрямую перенаправлять запрос серверу
coredump_dir /var/spool/squid
# Указываем куда сбрасывать core
# TAG: cache_mem (bytes)
cache_mem 512 MB
# сколько оперативной памяти сквид может забрать под свои нужды.
maximum_object_size 2000 KB
# максимальный размер объектов, которые будут сохранены на диск.
maximum_object_size_in_memory 1000 KB
# максимальный размер объектов, которые будут сохранены в кэше.
# TAG: cache_dir
cache_dir ufs /var/spool/squid 4096 16 256
# указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 3000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня.
# TAG: cache_access_log
# TAG: cache_log
# TAG: cache_store_log
# TAG: ftp_user
# в этих строках мы указываем сколько времени в минутах объект в кеше считается свежим и какой процент объектов оставлять с последнего обновления
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# TAG: redirect_program
# redirect_program /etc/squid/redirector.sams
# Позже, здесь можно будет указать путь к редиректору.
# TAG: redirector_access
# TAG: auth_param
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="EGARANT\\Пользователи домена"
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="EGARANT\\Пользователи домена"
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# TAG: acl
acl _sams_4cf37cc8b9151 proxy_auth "/etc/squid/4cf37cc8b9151.sams"
acl _sams_4cf37cc8b9151_time time MTWHFAS 00:00-23:59
acl _sams_4cf37ce72e937 proxy_auth "/etc/squid/4cf37ce72e937.sams"
acl _sams_4cf37ce72e937_time time MTWHFAS 00:00-23:59
acl _sams_4cf37d2f4c3c0 proxy_auth "/etc/squid/4cf37d2f4c3c0.sams"
acl _sams_4cf37d2f4c3c0_time time MTWHFAS 00:00-23:59
acl _sams_4cef83fb3ca9c url_regex -i "/etc/squid/4cef83fb3ca9c.sams"
acl _sams_4d4d11485334f url_regex -i "/etc/squid/4d4d11485334f.sams"
acl _sams_chat url_regex -i "/etc/squid/chat.sams"
acl _sams_porno url_regex -i "/etc/squid/porno.sams"
acl _sams_4cef847929b41 url_regex -i "/etc/squid/4cef847929b41.sams"
acl _sams_disabled_id proxy_auth "/etc/squid/disabled_id.sams"
# acl temp proxy_auth "/etc/squid/temp"
acl manager proto cache_object
# назначить протоколу кеширования объектов название manager
acl localhost src 127.0.0.1/32 192.168.199.2/32
# адрес сервера
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
# удалённые адреса
acl localnet src 192.168.0.0/16
# адресное пространство локальной сети
acl SSL_ports port 443
acl Safe_ports port "/etc/squid/allowports.txt"
# разрешённые порты
acl CONNECT method CONNECT
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
# Запрет всех портов, кроме разрешённых
http_access deny CONNECT !SSL_ports
# Запрет всех SSL портов, кроме разрешённых
http_access deny to_localhost
# TAG: http_access
http_access allow _sams_4cf37cc8b9151 !_sams_4cef83fb3ca9c !_sams_4d4d11485334f !_sams_chat !_sams_porno _sams_4cf37cc8b9151_time
http_access allow _sams_4cf37ce72e937 !_sams_4d4d11485334f !_sams_chat !_sams_porno _sams_4cf37ce72e937_time
http_access allow _sams_4cf37d2f4c3c0 _sams_4cf37d2f4c3c0_time
http_access deny _sams_disabled_id
http_access allow localhost
# разрешить доступ с сервера
http_access deny all
# запретить всё остальное
# TAG: delay_pools
Пользователей через Squid подключается где-то в районе 100 человек, а может и больше.
Да, и ещё: Исходники самог Сквида немного подправлены -- как именно я описал вот тут. Хотя, я и не думаю, что это как-то связано друг с другом...
Подскажите, куда можно ещё копнуть?