В силу некоторых обстоятельств мне приходится часто работать с DNS.

Документации (кроме манов по bind и rfc) я практически не нашёл, разбирался ручками. Поэтому я сначала расскажу, как всё работает. Кому-то это будет интересно, а кто-то меня поправит.

Так, у нас есть доменное имя. При его регистрации у нас попросят указать два адреса DNS-сервера, которые будут отдавать всю информацию о домене. Если вы регистрируете домен example.com, то у вас есть два варианта – дать адрес nameserverов в другом домене, который уже работает (например, ns1.kostenko.name и ns2.kostenko.name) и настроить их. Во втором варианте – при вводе ns1.example.com и ns2.example.com вам нужно будет указать их IP.

Теперь основное:

Для вашего домена вам потребуется указать записи SOA и A (или AAAA для IPv6). SOA – start of authority содержит базовую информацию о доменном имени. A – IPv4 адрес

example.com.    SOA ns1.example.com. ns2.example.com. your_email.google.com.
example.com.    A   89.115.99.125
ns1             A   89.115.99.125
ns2             A   89.115.99.125

Домен должен заработать. Обратите внимание на точки в конце. Они означают в bind, что это корневой домен. Домен без точки в конце – поддомен нашего example.com. @ – это alias для example.com.

Теперь о том, что вы можете сделать.
Continue reading »

Для начала расскажу, как обычно работают сервера:

  1. Создаётся сокет, который слушает порт
  2. Вызывается системный вызов accept, который берёт первого клиента из очереди соединений, а если его нет – то блокирует приложение до тех пор, пока он не появится
  3. Приложение что-то делает с этим клиентом и в конце концов с ним прощается
  4. goto пункт два

nginx и lighttpd использует вместо accept функции select/kevent/epoll, которые позволяют работать со многими клиентами одновременно, но это уже отдельная история (к асинхронным веб-серверам accept-фильтры применимяются точно так же)

Accept-фильтры – это модули ядра FreeBSD, которые не говорят, что сокет готов до тех пор, пока не выполнится какое-то условие. Я нашёл только два фильтра:

  • dataready – accept блокирует сокет до тех пор, пока в него прийдут данные. Когда мы получаем сокет, мы уже точно можем из него что-то считать
  • httpready – сокет блокируется до тех пор, пока не прийдёт полный GET/HEAD запрос. Соответственно, нам не надо тратить время на переключение контекста, если запрос ещё не собрался.

Остановимся на фильтре httpready

Буферизирует он только GET и HEAD запросы, так как в POST/PUT может прийти 600мегабайтный порнофильм.
Итак, подключаем модуль accf_http:

    kldload accf_http
    echo 'accf_http_load=”YES”' >> /boot/loader.conf

Далее нужно изменить работу с сокетом — установить опцию httpready:

        struct accept_filter_arg afa;
        bzero(&afa, sizeof(afa));
        strcpy(afa.af_name, "httpready");
        setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));

Результаты тестов

Так как существует мнение, что accept-фильтры бесполезны, мы решили провести тестирование. Веб-сервер был выбран AnyEvent::HTTPD, клиент – ab. Итак, результаты:

  1. локальная машина, 10000 запросов, concurrency = 4: httpready даёт прирост в 10%
  2. локальная сеть, 10000 запросов, concurrency=1000: httpready даёт прирост в 10%
  3. локальная сеть, 10000 запросов, concurrency = 4: прирост в 25%
  4. локальная сеть, 1000 запросов, concurrency = 1: в два раза!

В боевых условиях, при наличии GPRS, 256k и прочего позора цивилизации, скорость ещё увеличится.

Настройка веб-серверов

В apache 1.3+ и nginx accept-фильтры поддерживаются.

Apache под FreeBSD изначально содержит такую конфигурацию:

 AcceptFilter http httpready
 AcceptFilter https dataready

и менять её не стоит.
А вот в настройках сервера nginx стоит добавить опцию

    accept_filter "httpready";

Ссылки

Из новшеств замечено только одно – админка перестала работать под IE6. В остальном всё так же. Настоятельно советую обновиться лишь тем, кому совсем нехер делать

PD: обновился)

Из изменений:

  • Собственный парсер результата. Сейчас правильно показывается степень, подсвечиваются неизвестные.
  • Правильно понимаются валюты. У них отображается название, научился понимать знак $
  • При наборе подсказка не только парсит и расставляет функции, а ещё и показывает помощь по аргументам
  • Поправил мелкие баги, связанные с показом несуществующих ошибок

это первый пост, который я пишу из WP-2.7beta1.

Изменился весь дизайн админки. Она стала лучше с точки зрения юзабилити (всё перед глазами, а добавить пост можно вообще в один клик), но дизайн стал каким-то серым и угрюмым. Есть много замечательных людей, которые и без дизайна мне настроение портят. Не хватало ещё, чтобы WordPress этим занимался.

Админка вордпресса

Так же ворпресс научился самообновлять ядро. Система такая же, как и с плагинами.

Пока это всё что я заметил.

Для тех, кто не знает, что такое WordPress, объяснение здесь

Как правило для сайтов нужен какой-то однообразный набор иконок для базовых событий – добавление, удаление чего-то итд итп

Так вот. Я знаю уже два набора иконок, которые пригодятся при веб-разработке

  1. Silk icons (http://famfamfam.com)
  2. Fugue icons (http://www.pinvoke.com/)

Для тех, кому я ещё не проел мозги рассказами про этот замечательный браузер.
Это – социальный браузер на основе Firefox. Умеет из которобки работать с:

  • соцсетями (список друзей, оповещения итд итп)
  • блогами (WordPress, Blogger, Twitter, LJ)
  • фотовидеогаллереями (Picasa, Flickr, Youtube)
  • вебпочтой (Gmail, AOL, Yahoo)
  • закладочными сервисами (Delicious)

Все сервисы флока – это простые JS-файлы. И можно без проблем дописать поддержку понравившегося.

Расширения к нему подходят те же, что и к Firefox 3.

Полгода назад я пользовался только Flock-ом. С выходом Firefox 3 перешёл на неё. И мечтал о Flock-е на движке 3-го Firefox. Мечта идиота свершилась – навую версию можно скачать с

Сайт Flock-а

Blogged with the Flock Browser

Посмотрим, что из этого получится.

Только этот API должны начать поддерживать. Хотя довольно прикольно – ты сидишь, пыришься в ленту, а тебе в реалтайме подкружаются новые посты и комменты к ним.

Тонкий намёк на http://friends.rambler.ru

© 2012 Андрей Костенко Suffusion theme by Sayontan Sinha