Июл 10


Для ускорения загрузки сайта можно использовать кэширование на сервере, включить gzip-сжатие, использовать постоянные HTTP-соединения (keep-alive) или даже использовать CDN, но этого мало — PageSpeed Insights от Google настойчиво предлагает включить для моего сервера кеширование в браузере.

Ну ОК, так и поступим.

Если у вас веб-сервер Nginx, просто пропишите в конфиге:

location ~* ^.+\.(jpg|jpeg|png|gif|ico|js|css|txt|pdf)$ {
root /var/www; # Путь к корню сайта
expires 3d; # кешируем на 3 дня
}

и радуйтесь ускорению. А вот если вы используете Apache, то идите под кат 😉

Продолжение »

Автор: Johnny Тэги: , ,


Сен 10

nginx-apache[Пост из черновиков] Этот пост был написан 14 октября 2012, но в силу ряда причин так и не был опубликован. Исправляю.

Предыстория и предпосылки к переходу

Несколько лет назад дома появился «широкий» Интернет от тогда еще Корбины и вместе с ним появилась возможность/потребность/необходимость в постоянно включенном компе для торрентов, хаба и сайта для локала. Пришлось покупать простенький системник, доставать из кладовки старый монитор, устанавливать Ubuntu и ставить этот комп на кухню, чтобы не шумел и не мешал спать. В итоге (потому что постоянно включен) сейчас это основной комп для работы и развлечений для меня, жены и 4-летней дочки 🙂 Со временем я начал вести блог SarAdmin.RU, который, пожив какое-то время на бесплатном хостинге, перебрался на этот же комп. Так как тут уже крутились веб-проекты для локала, пришлось настраивать виртуальные хосты на Apache.

Время идёт, количество посетителей этого блога постепенно увеличивается и вот уже стало заметно, что компьютер перестал справляться с нагрузкой — детишки Апача кушают проц, всё начинает тормозить. В итоге я решил собрать тихий маломощный системник на Celeron430, естественно, без иксов, закинуть его в кладовку и пусть себе там шумит. Вот только начитавшись статей в Инете, решил попробовать избавиться от Apache в пользу Nginx, заодно описав свои действия — вдруг кому пригодится, да и профи, прочитав, смогут поправить и указать на мои ошибки.

Устанавливаем и настраиваем nginx

Если вдруг на сервере уже установлен Apache, удаляем его
sudo apt-get purge apache2 -y
Продолжение »

Автор: Johnny Тэги: , , , ,


Сен 07

postgresqlM$ в последнее время хочет всё больше денег, с учётом роста курса доллара проблема усугубляется ещё больше, а файловый режим работы базы 1С в 2015 году уже не так хорош как раньше. Поэтому появилась задача перевода файловой базы на PostgreSQl. В настройке есть пара нюансов, про них и расскажу.
Будем считать, что свежая версия Ubuntu Server (на сегодняшний день последняя стабильная LTS-версия 14.04.3 LTS) уже скачана и проставлена, поэтому перейдем к установке и настройке PostgreSQL.

Настроим параметры ядра, отвечающие за выделяемую системе память.

Параметр SHMMAX — это максимум памяти, выделяемой в одном запросе в байтах. Я для PQSQL выделил виртуалку с 10ГБ оперативки, поэтому установлю размер в 8ГБ: kernel.shmmax = 8589934592.

Параметр kernel.shmall – Общее количество доступной разделяемой памяти в страницах. Рассчитывается как shmmax/PAGE_SIZE. Как правило, размер страницы в системе — 4096 байт, уточнить можно запросом в консоли getconf PAGE_SIZE.

Поэтому kernel.shmall = 8589934592/4096 или kernel.shmall = 2097152

echo "kernel.shmmax=8589934592" >> /etc/sysctl.conf
echo "kernel.shmall=2097152" >> /etc/sysctl.conf
sysctl -p

Продолжение »

Автор: Johnny Тэги: , , , , , ,


Авг 14

Итак, дано:
Старый DHCP-сервер SERVER1 со списком зарезервированных IP-адресов, который требуется вывести из эксплуатации.
Новый сервер SERVER2, на котором нужно поднять DHCP-сервер со всеми резервированиями.
Про построчный импорт данных о резервировании мы уже говорили, теперь поговорим про то, как перенести все записи.
На сервере SERVER1 запускаем консоль и пишем там
netsh dhcp server SERVER1.DOMAIN.LOCAL dump > c:\dhcpdump.txt
Затем открываем файл c:\dhcpdump.txt в блокноте и заменяем (Ctrl+H) SERVER1 на SERVER2 в блоке

# ============================================================================
# Начало добавления зарезервированных IP-адресов
# к области 192.168.0.0, сервера SERVER1.DOMAIN.LOCAL
# ============================================================================

Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.1 00228c42bacd "PC-001.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.2 3202a6b123e0 "PC-002.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.3 c8600035a3d3 "PC-003.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.4 1c6f631131d2 "PC-004.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.5 3202a635f121 "PC-005.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.6 00221321a2d1 "PC-006.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.7 002618e26c24 "PC-007.DOMAIN.LOCAL" "" "BOTH"
Dhcp Server \\SERVER1.DOMAIN.LOCAL Scope 192.168.0.0 Add reservedip 192.168.0.8 30263db1fa1b "PC-008.DOMAIN.LOCAL" "" "BOTH"

Если на DHCP-сервере SERVER2 уже настроены все параметры сервера, оставляем в файле только этот блок и сохраняем его. Если нет, можно оставить и другие опции (параметры сервера, параметры области и сама область, привязка к сетевым адаптерам, фильтры и т.д.).

Файл хорошо структурирован и понятен, так что сложностей точно не возникнет.

Затем на сервере SERVER2 пишем в консоли

netsh exec dhcpdump.txt

и радуемся, что не пришлось заводить это всё вручную.

Да, и раз уж мы занялись конфигами DHCP, вот команда для бэкапа и восстановления всей базы:

Бэкап
netsh dhcp server SERVER1.DOMAIN.LOCAL export c:\dhcpdb all

Восстановление
netsh dhcp server SERVER1.DOMAIN.LOCAL import c:\dhcpdb all

Автор: Johnny Тэги: , , , , , , , , , ,


Авг 06

dyndns_dyndns_2[1]

В связи с тем, что dyndns.org испортился и начал хотеть денег за свои услуги, пришлось таки озаботиться этим вопросом, изучить матчасть..

В общем-то, динамические апдейты в DNS реализованы уже много лет назад, но как обычно, есть некоторые тонкости. Под катом краткое руководство для тех, кому интересно.
Подразумевается, что у вас уже есть собственный домен, собственный первичный DNS-сервер для этого домена (BIND), и клиент под юниксом/линуксом. Вероятно, на роутере, работающем под openwrt/dd-wrt, такой метод тоже сработает с небольшими поправками, но я лично не пробовал.

Итак..

1. На клиенте генерируем секретный ключ (на самом деле, генерировать его можно где угодно, но поскольку он нужен на клиенте, то удобнее прямо там):
dnssec-keygen -a hmac-sha256 -b 128 -n HOST -r /dev/urandom dyndns

Продолжение »

Автор: Johnny Тэги: , , , , ,


Май 22

Чтобы добавить резервирование IP-адреса в DHCP, необходимо всего три команды:
Открываем командную строку на сервере и пишем следующее:

netsh.exe
DHCP Server \\SERVERNAME scope 172.16.0.0 add reservedip 172.16.0.17 60140d21c2a0 PC17.DOMAIN.LOCAL "client description" BOTH

Синтаксис следующий:
SERVERNAME — Имя DHCP-сервера
172.16.0.0 — область, в которую добавляется резервирование
172.16.0.17 — IP-адрес добавляемого клиента
60140d21c2a0 — MAC-адрес добавляемого клиента
PC17.DOMAIN.LOCAL — имя добавляемого клиента
client description — здесь можно указать описание
BOTH — тип резервирования DHCP и BOOTP

Вместо имени сервера можно указывать его IP-адрес.

netsh.exe
DHCP Server 172.16.0.1 scope 172.16.0.0 add reservedip 172.16.0.17 60140d21c2a0 PC17.DOMAIN.LOCAL "client description" BOTH

Автор: Johnny Тэги: , , , , , , , ,


При использовании материалов сайта на других ресурсах прошу оставлять прямую ссылку на оригинал статьи.