WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » SQUID Часто задаваемые вопросы

SQUID Часто задаваемые вопросы


Дата публикации: 17-03-2013

1 О Squid, этот FAQ, и другая информация по Squid
1.1 Что такое Squid?
Squid это высокопроизводительный кеширующий прокси для web клиентов, поддерживающий ftp, gopher, и http. В отличии от традиционных кеширующих программ, Squid все запросы выполняет как один, неблокируемый процесс ввода/вывода. Squid сохраняет часто запрашиваемые данные в ОЗУ, кеширует DNS запросы, не блокируется при выполнении DNS запросов, и не кеширует неудавшиеся запросы. Также поддерживает SSL, расширенный контроль доступа и полную регистрацию запросов. Используя Internet Cache Protocol (ICP), кеши Squid можно расположить иерархически для дополнительного выигрыша в пропускной способности канала.

Squid состоит из - основной программы squid, программы обработки DNS запросов dnsserver, программы скачивания ftp данных ftpget, а также некоторых инструментов управления. Когда squid запускается, он запускает заданное число dnsserver-ов, каждый из которых работает самостоятельно, блокируя только DNS запросы. Таким образом уменьшается общее время ожидания ответа DNS.

Squid берет свое начало с основанного ARPA проекта Harvest. http://harvest.cs.colorado.edu/
1.2 Что такое кеширование объектов интернет?
Это способ хранения запрошенных из Интернет объектов (например, данных доступных по http, ftp и gopher протоколам) на сервере, находящемся ближе к запрашивающему компьютеру нежели исходный. Браузеры могут потом использовать Squid кеш как http прокси-сервер, уменьшая как время доступа, так и загрузку канала.
1.3 Почему Squid?
Harris' Lament отвечает, "All the good ones are taken." - "Все лучшие названия уже расхватали"

Нам нужно было как-то отличаться от кеша Harvest. Squid было кодовое название на начальной стадии разработки, а потом оно прилипло.
1.4 Какая последняя версия Squid?
Squid обновляется часто; о последних изменениях смотрите здесь http://squid.nlanr.net/Squid/
1.5 Кто автор Squid?
Squid это результат усилий нескольких людей из сообщества Internet. Возглавляет проект Duane Wessels из National Laboratory for Applied Network Research (основанной National Science Foundation).
1.6 Где можно взять Squid?
Вы можете взять по ftp здесь:

ftp://squid.nlanr.net/pub/.

Также много зеркал по всему миру:

http://squid.nlanr.net/Squid/mirrors.html

1.7 Где подписаться на список рассылки Squid?

squid-users@nlanr.net: общая информация о Squid.
Подписка через squid-users-request@nlanr.net
squid-users-digest: дайджест (ежедневный) того же.
Подписка через squid-users-digest-request@nlanr.net
squid-announce@nlanr.net: Анонс новых версий (только получение).
Подписка через squid-announce-request@nlanr.net
squid-bugs@nlanr.net : Закрытый список для сообщения о багах.
squid@nlanr.net: Закрытый список с пожеланиями и предложениями.
squid-faq@nlanr.net: Закрытый список для обратной связи, обновлений и дополнений в Squid FAQ.

Архивы различных списков рассылки доступны на http://squid.nlanr.net/Mail-Archive/squid-users/
1.8 Web страницы посвященные Squid.
Здесь информация по программе Squid http://squid.nlanr.net/Squid/, а здесь http://www.nlanr.net/Cache/ дополнительная информация по кешированию вообще.
1.9 Какой официальный статус Squid?
Из дистрибутива Squid, файл README:

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

1.10 Распространители Squid FAQ
Jonathan Larmour
Cord Beermann
Tony Sterrett
Gerard Hynes

Duane Wessels
K Claffy
Paul Southworth

Пожалуйста шлите исправления, обновления и комментарии на: squid-faq@nlanr.net.

2 Инсталляция
2.1 Какие файлы следует брать?
Необходимо скачать архив исходников следующего вида squid-x.y.z-src.tar.gz (например, squid-1.1.6-src.tar.gz) с http://squid.nlanr.net/Squid/. Содержание различий между версиями доступно для апгрейда, которые применяются программой patch, которую можно взять здесь ftp://prep.ai.mit.edu/pub/gnu/.
2.2 Как мне установить Squid?
Прежде всего необходимо распаковать исходный архив, следующим образом:

% gzip -dc squid-x.y.z-src.tar.gz | tar xvf -

Затем нужно отконфигурировать, откомпилировать и установить

% cd squid-x.y.z
% ./configure
% make all
% make install

Лучше всего использовать GNU C (gcc) компилятор. Последние версии имеют формат ANSI C, так что старые компиляторы могут не работать. GNU C компилятор доступен на ftp://prep.ai.mit.edu/pub/gnu/. Можно задать несколько параметров конфигурационного скрипта. Наиболее полезный --prefix для установки в другую директорию. По умолчанию это /usr/local/squid.Чтобы поменять следует сделать следующее:

% cd squid-x.y.z
% ./configure --prefix=/some/other/directory/squid
2.3 На каких операционных системах работает Squid?
Это ПО разрабатывалось для работы на любых современных Unix системах, и известно что работает на AIX, FreeBSD, HP-UX, IRIX, Linux, OSF/1, Solaris, и SunOS. Если Вы обнаружили специфичные для данной платформы проблемы, пожалуйста дайте нам знать по email: squid-bugs@nlanr.net.
2.4 Для чего нужен файл squid.conf?
Файл squid.conf задает конфигурацию squid. Конфигурация включает в себя (но не ограничивается этим) номер порта HTTP , номер порта для ICP запросов, приходящие и исходящие запросы, информацию о доступе к брандмауэру, и значения различных таймаутов.
2.5 А есть ли пример squid.conf?
Да, после того как Вы успешно проделали make install, пример файла squid.conf будет находиться в поддиректории "etc" инсталяционной директории Squid. Пример squid.conf содержит комментарии объясняющие каждую опцию.
2.6 Как мне запустить squid?
После редактирования конфигурационного файла, можно запустить squid из скрипта RunCache. Если Вы устанавливали в директорию по умолчанию то команда для запуска будет следующей:

/usr/local/squid/bin/RunCache &
2.7 Как мне узнать что Squid запущен?
Для этого есть программа client:

% client http://www.netscape.com/ > test

Существуют и другие HTTP программы-клиенты работающие в командной строке. Эти две Вы можете найти полезными:url_get, по адресу ftp://ftp.pasteur.fr/pub/Network/url_get/, иechoping, по адресу ftp://ftp.pasteur.fr/pub/Network/echoping/. Также проверьте наиболее важные файлы access.log иcache.log.
2.8 Как использовать патчи?
Необходима программа patch. Обычно достаточно:

cd squid-1.1.x
patch 80
acc all 10.0.0.0/8 0.0.0.0/0 n/a
acc tcp 0.0.0.0/0 0.0.0.0/0 * -> *

Здесь важные установки в squid.conf:

http_port 80
icp_port 3130
httpd_accel virtual 80
httpd_accel_with_proxy on

Внимание, virtual это магическое слово здесь!

Я протестировал на Windows 95 как с Microsoft Internet Explorer 3.01 так и Netscape Communicator и это работает с обоими с отключенными установками прокси.

Один раз squid кажется зациклился когда я указал браузеру на локальный 80 порт. Но этого можно избежать добавив строку:

${FW} -I -a rej -P tcp -S localnet/8 -D dec/32 80


IP firewall input rules, default policy: reject
type prot source destination ports
acc all 127.0.0.1 127.0.0.1 n/a
rej tcp 10.0.0.0/8 10.0.0.1 * -> 80
acc/r tcp 10.0.0.0/8 0.0.0.0/0 * -> 80 => 80
acc all 10.0.0.0/8 0.0.0.0/0 n/a
acc tcp 0.0.0.0/0 0.0.0.0/0 * -> *

Замечание о преобразовании имен: Вместо того, чтобы просто передать URL прокси, браузер сам преобразовывает их. Удостоверьтесь, что на рабочих станциях прописаны локальные DNS сервера.

Если на брандмауэре или прокси сервере работает DNS сервер (что является хорошей идеей IMHO) пусть рабочие станции используют его.

5 Описание работы
5.1 Как посмотреть системную статистику работы Squid?
В состав дистрибутива Squid входит CGI утилита cachemgr.cgi для просмотра статистики squid через браузер. Для большей информации обратитесь к разделу, посвященному cachemgr.cgi.
5.2 Что я могу узнать из log файлов?
Файлы содержат различную информацию о загрузке и производительностиe Squid. В log пишутся кроме информации о доступе, еще и системные ошибки и информация о потреблении ресурсов, таких, например, как память или дисковое пространство. Ниже описан формат log файлов Squid:

access.log, общий формат:

Host Ident - [D/M/Yr:H:M:S TZ] "Method URL" Status Size

access.log, Squid 1.0 родной формат:

Time Elapsed Host Status/HTTP/Hier_Status Size Method URL

access.log, Squid 1.1 родной формат:

Time Elapsed Host Status/HTTP Size Method URL Ident Hier_Status/Hier_Host

hierarchy.log, только Squid 1.0:

[D/M/Yr:H:M:S TZ] URL Hier_Status Hier_Host

Здесь описание формата разных компонентов log:

Host
IP адреса запрашиваемых хостов (в версии v1.1, если задано может быть FQDN).
Ident
Обычно '-'. В версии 1.1 ответ Ident (RFC 931), если задано.
Method
GET, HEAD, POST для TCP запросов или ICP_QUERY для UDP запросов.
URL
Запрашиваемый объект.
Status
Результат запроса (TCP_HIT для ранее кешируемых объектов, TCP_MISS если запрашиваемый объект взят не из локального кеша, UDP_HIT и UDP_MISS то же для братских запросов).
HTTP
Возвращаемый HTTP код: 200 для удачных, 000 для UDP запросов, 403 для перенаправлений, 500 для ошибок, и т.д.
Size
Количество байт переданных клиенту.
Hier_Status
Результат запросов к братским/родительским кешам. Может быть PARENT_MISS, SIBLING_HIT и т.д.
Hier_Host
Хост, с которого взят объект.
Time
Время с Jan 1, 1970 в миллисекундах.
Elapsed
Затраченное время в миллисекундах.

5.3 Какие log файлы я могу удалять?
Чтобы сохранить log файлы, лучше послать процессу squid сигнал USR1. Это приведет к тому, что текущие log файлы будут закрыты и переименованы. После этого можно удалять старые log файлы. Например,если Ваш файл squid.pid находится в/usr/local/squid/logs/squid.pid (как задано в squid.conf) надо сделать следующее:

kill -USR1 `cat /usr/local/squid/logs/squid.pid`

Примечание: Строка logfile_rotate в squid.conf делает необязательным ручное удаление старых log файлов. Просто установите значение logfile_rotate в желаемую величину. Как только значение logfile_rotate будет достигнуто, старый log будет удален автоматически. Выставите нужное значение logfile_rotate и пропишите в crontab посылку squid 'у сигнала SIGUSR1, например в полночь каждого дня:

0 0 * * * /bin/kill -USR1 `cat /usr/local/squid/logs/squid.pid`

Единственный файл, котрый нельзя удалять это log, который обычно находится в первой cache_dir директории. Этот файл содержиит данные, необходимые для восстановления кеша призапуске Squid. Удаление этого файла приведет к потере кеша.
5.4 Как мне найти самый большой объект кеша?

sort -r -n +4 -5 access.log | awk '{print $5, $7}' | head -25

5.5 Я хочу перезапустить Squid с чистым кешем
Первый способ, добавить -z в командной строке.

Другой, возможно более простой, удалить файл log из директории cache_dir.
6 Кеш-менеджер
[Contributed by Jonathan Larmour ]
6.1 Что такое кеш-менеджер?
Кеш-менеджер (cachemgr.cgi) это CGI утилита для просмотра статистики работающего процесса squid. Кеш-менеджер это простой способ управления кешем и просмотра статистики без захода на сервер.
6.2 Как его установить?
Прежде всего это зависит от web сервера, который Вы используете. Ниже Вы найдете инструкции по настройке CERN и Apache серверов для пользования cachemgr.cgi.

После того как Вы изменили конфигурационные файлы сервера, нужно или перезапустить web сервер, либо послать ему SIGHUP, чтобы он пересчитал файлы настройки.

Когда Вы закончите конфигурировать web сервер, то сможете подключиться браузером к кеш-менеджеру по URL:

http://www.example.com/Squid/cgi-bin/cachemgr.cgi
6.3 Настройка CERN httpd 3.0 для работы с кеш-менеджером
Во-первых, следует убедиться, что только указанные рабочие станции имеют доступ к кеш-менеджеру. Их надо задать в CERN httpd.conf, а не в squid.conf.

Protection MGR-PROT {
Mask @(workstation.example.com)
}

Можно задавать шаблонами, IP адресами, в том числе и через запятую. Возможны и другие способы защиты. Обратитесь к документации по серверу.

Также следует добавить:

Protect /Squid/* MGR-PROT
Exec /Squid/cgi-bin/*.cgi /usr/local/squid/bin/*.cgi

чтобы отметить для MGR-PROT, что скрипт выполняемый.
6.4 Настройка Apache для работы с кеш-менеджером
Сначала убедитесь, что директория cgi-bin прописана в ScriptAlias в файле srm.conf Вашего Apache, как-то так:

ScriptAlias /Squid/cgi-bin/ /usr/local/squid/cgi-bin/

Не советуем делать ScriptAlias на всю директорию /usr/local/squid/bin где лежат бинарники Squid.

Затем, надо задать рабочие станции имеющие доступ к кеш-менеджеру. Это задается в файле access.conf Apache, а не в squid.conf. В конце access.conf, вставьте:


order deny,allow
deny from all
allow from workstation.example.com


Можно вписать несколько строк, можно добавить домены или сети.

Также, cachemgr.cgi может быть защищен паролем. Надо добавить следующие строки в access.conf:


AuthUserFile /path/to/password/file
AuthGroupFile /dev/null
AuthName User/Password Required
AuthType Basic

require user cachemanager


В документации Apache Вы найдете информацию об использовании htpasswd для задания пароля.
6.5 Задание ACL (списка пользователей) для кеш-менеджера в squid.conf
По умолчанию доступ к кеш-менеджеру задан в squid.conf так:

acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0

Со следующими правами:

http_access deny manager !localhost
http_access allow all

Первая запись в ACL нужна для кеш-менеджера, так как он для опроса squid использует специальный cache_object протокол. Можете сами попробовать:

telnet mycache.example.com 3128
GET cache_object://mycache.example.com/info HTTP/1.0

По умолчанию, если запрос для cache_object, и запрос не с локальной машины, то доступ будет закрыт, в противном случае - открыт.

Фактически, так как доступ разрешен только с локальной машины, то в поле cachemgr.cgi можно указать в качестве кеш хоста localhost. Мы рекомендуем следующее:

acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl example src 123.123.123.123/255.255.255.255
acl all src 0.0.0.0/0.0.0.0

Где 123.123.123.123 это IP адрес Вашего web сервера. Затем измените правила так:

http_access deny manager !localhost !example
http_access allow all

По умолчанию подразумевается, что web сервер находится на той же машине, что и squid. Учтите, что обращение кеш-менеджера к squid происходит через web сервер, а не браузер. Так что, если Ваш web сервер находится где-то в другом месте, IP адрес web сервера, на котором установлен cachemgr.cgi должен быть указан вместо example в вышеприведенном примере.

Не забывайте каждый раз после изменения squid.conf посылать SIGHUP squid'у.
6.6 Почему он спрашивает у меня какой-то пароль и URL?
Если Вы посмотрите в выпадающем списке, то увидите, что пароль нужен только для остановки кеша, а URL нужен для обновления объекта (то есть, повторного получения его с исходного сервера). Для получения информации от cachemgr.cgi пароль не требуется.
6.7 Я хочу удаленно остановить кеш. Какой пароль?
В squid.conf есть директива cachemgr_passwd.
6.8 Как сделать, чтобы в поле cache host по умолчанию было имя моего кеша?
Найдите в файле Makefile.in следующую строку:

HOST_OPT = # -DCACHEMGR_HOSTNAME="getfullhostname()"

Если web сервер с cachemgr.cgi запущен на той же машине, что и Squid просто уберите #. Если же web сервер какой-то другой, то:

HOST_OPT = -DCACHEMGR_HOSTNAME=\"mycache.example.com\"

После этих изменений следует перекомпилировать и переустановить cachemgr.cgi.
6.9 Какая разница между TCP и UDP соединениями Squid?
Браузеры и кеши используют TCP соединения для получения объектов с web серверов или кешей. UDP соединения используются когда другой кеш использует Ваш в качестве братского или родительского на предмет наличия нужного объекта. UDP соединения это ICP запросы.
6.10 Он говорит, что срок хранения кеша истечет в 1970 году!
Не волнуйтесь. Обычное (и в общем-то разумное) поведение squid это перезаписывать объекты, срок хранения которых истек.
6.11 Что значат записи мета-данных?

StoreEntry
Запись описывает объект кеша.
IPCacheEntry
Запись в кеше DNS.
Hash link
Звено в структуре хэш-таблицы.
URL strings
Сами строки URL, указывающие на номер объекта в кеше, позволяющие обращаться к StoreEntry.

В основном похоже на log файл в директории cache:

PoolMemObject structures
Информация об объектах находящихся в памяти, (например, в процессе передачи).
Pool for Request structures
Информация о каждом запросе.
Pool for in-memory object
Пространство для принятых объектов.

6.12 Pool for in-memory object огромен и не становится меньше! Это что утечка памяти?
Нет. Этот пул только увеличивается. Он равен самому большому объекту когда либо кешируемому squid . Если Вы не хотите, чтобы он был такого размера, уменьшите значение cache_mem и размер объектов для gopher, http и ftp в squid.conf.
6.13 Значение поля "Total accounted" не совпадает с размером занимаемым моим squid!
Если это значение близко к упомянотуму, не волнуйтесь. Если squid занимает намного больше, возможно это утечка памяти, и все что можно делать это ждать новых патчей и время от времени перезапускать squid.

Если squid занимает гораздо меньше, чем в этом поле, будьте осторожны! Что-то не так, следует перезапустить squid.
6.14 В разделе utilization, что есть Other?
Other это категория, в каторую попадают объекты не попавшие ни в какую другую.
6.15 В разделе utilization, почему колонка Transfer KB/sec всегда нулевая?
Эта колонка содержит грубое приближение отношения переданных данных к полному времени работы кеша. Эти данные ненадежные и практически бесполезные.
6.16 В разделе utilization, что значит Object Count?
Число объектов данного типа, находящихся в данный момент в кеше.
6.17 В разделе utilization, что значит Max/Current/Min KB?
Это относится к увеличиваемому/текущему/уменьшаемому размеру всех объектов этого типа.
6.18 О чем раздел I/O?
Это гистограммы числа байт взятых из сети вызовом read(2). Довольно полезны для определения максимального размера буферов.
6.19 Что находится в разделе Objects?
Предупреждение: в этом разделе Ваш браузер получит список всех URL кеша и статистику о них. Он может быть очень, очень большим. Иногда он может быть больше, чем доступная Вашему клиенту память! Вероятно Вам эта информация никогда не понадобится.
6.20 Для чего раздел VM Objects?
VM Objects это объекты находящиеся в виртуальной памяти. Эти объекты уже скачены и находятся в памяти для быстрого доступа к ним.
6.21 Что значит AVG RTT?
Average Round Trip Time. Показывает среднее время, прошедшее от посылки ICP ping до прихода ответа.
6.22 В разделе IP cache , какая разница между hit, negative hit и miss?
HIT значит, что документ найден в кеше. MISS, что не найден. Negative hit означает, что он находился в кеше, но не существует.
6.23 Что значит содержимое раздела IP cache?
Hostname это имя, которое следует преобразовать.

Для колонки Flags:

C
Кеширован.
N
Не кеширован.
P
Запрос отложен для посылки.
D
Запрос послан и ожидается ответ.
L
Запись блокирована, потому что выступает в роли родителя или брата.

В колонке TTL представлены "Time To Live" (то есть, как долго запись в кеше действительна). (Может быть отрицательным, если срок хранения документа истек.)

Колонка N это число IP адресов, которые имеет данный hostname.

В конце строки перечислены остальные IP адреса, относящиеся к этой записи в IP cache.
6.24 Как анализировать использование памяти из данных cachemgr.cgi?
Взгляните на страницу Cache Information Вашего cachemgr.cgi. Например:

Memory usage for squid via mallinfo():
Total space in arena: 94687 KB
Ordinary blocks: 32019 KB 210034 blks
Small blocks: 44364 KB 569500 blks
Holding blocks: 0 KB 5695 blks
Free Small blocks: 6650 KB
Free Ordinary blocks: 11652 KB
Total in use: 76384 KB 81%
Total free: 18302 KB 19%


Meta data:
StoreEntry 246043 x 64 bytes = 15377 KB
IPCacheEntry 971 x 88 bytes = 83 KB
Hash link 2 x 24 bytes = 0 KB
URL strings = 11422 KB
Pool MemObject structures 514 x 144 bytes = 72 KB ( 70 free)
Pool for Request structur 516 x 4380 bytes = 2207 KB ( 2121 free)
Pool for in-memory object 6200 x 4096 bytes = 24800 KB ( 22888 free)
Pool for disk I/O 242 x 8192 bytes = 1936 KB ( 1888 free)
Miscellaneous = 2600 KB
total Accounted = 58499 KB

В первой строке mallinfo() сообщает, что используетсяr 94M. Это значение близко к тому, что показывает top (97M).

Из этих 94M, 81% (76M) реально используется в этот момент. Остальное высвобождено, или зарезервировано malloc(3) и пока не используется.

Из 76M используемых, можно рассчитывать на 58.5M (76%). Остальное отведено под вызовы malloc(3).

Список Meta Data содержит информацию о том, куда потрачена доступная память. 45% ушло на StoreEntry и хранение URL строк. Другие 42% потрачены на хранение объектов в виртуальной памяти, пока они доставляются клиентам (Pool for in-memory object).

Размеры пула задаются в squid.conf. В версии 1.0, они несколько туповатые: там хранится стек неиспользованных страниц, вместо того чтобы освобождать этот блок. В Pool for in-memory object, размер этого стека составляет 1/2 cache_mem. Размер Pool for disk I/O жестко задан в 200. Для MemObject и Request это 1/8 величины FD_SETSIZE.

Если Вам нужно снизить количество памяти процесса, мы рекомендуем уменьшить максимальные размеры объектов в строках 'http', 'ftp' и 'gopher' конфигурации. Также можно уменьшить cache_mem. Но если сделать cache_mem слишком маленьким, то некоторые объекты могут не сохраняться на диск при большой загрузке. Новые версии Squid позволяют задать memory_pools off отключая таким образом пул свободной памяти.
6.25 Что такое fqdncache и чем отличается от ipcache?
IPCache содержит данные о преобразовании Hostname в IP-Number, а FQDNCache содержит обратные данные.

Например:

==============================================================================



IP Cache Contents:
Hostname Flags lstref TTL N [IP-Number]
gorn.cc.fh-lippe.de C 0 21581 1 193.16.112.73
lagrange.uni-paderborn.de C 6 21594 1 131.234.128.245
www.altavista.digital.com C 10 21299 4 204.123.2.75
204.74.103.37
204.123.2.66
204.123.2.69
2/ftp.symantec.com DL 1583 -772855 0



Flags: C --> В кеше
D --> Отправлен
N --> Не кеширован
L --> Блокирован

lstref: Время с момента последнего использования
TTL: Time-To-Live (время жизни) пока не истечет срок хранения информации
N: Число адресов



==============================================================================



FQDN Cache Contents:

IP-Number Flags TTL(?) N Hostname]

130.149.17.15 C -45570 1 andele.cs.tu-berlin.de
194.77.122.18 C -58133 1 komet.teuto.de
206.155.117.51 N -73747 0

Flags: C --> В кеше
D --> Отправлен
N --> Не кеширован
L --> Блокирован
TTL: Time-To-Live
N: Число имен
Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Август 2024 (1)
Май 2024 (1)
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Хороший сайт сам себя хвалит."

Опрос

Как Вам новый дизайн сайта?

Отлично
Неплохо
Нормальный
Ужасно