Pull to refresh
  • by relevance
  • by date
  • by rating

Веб 2.0 построен на Linux

Lumber room
Amazon работает под Linux, Wikipedia предпочитает дистрибутивы Red Hat и Fedora, а eBay использует Solaris. Сайт Myspace — пожалуй, единственный проект Веб 2.0, который работает под Windows.

Тщательное исследование крупнейших ресурсов Веб 2.0 показало, какие там используются веб-серверы и операционные системы.

Таблица с результатами
Total votes 35: ↑32 and ↓3 +29
Views 415
Comments 88

Организация постоянных редиректов с www.domain на domain и обратно.

System administration *
Так исторически сложилось, что домены сайтов называют с префиксом www или без.

Есть несколько взглядов как истинно должен называться домен, прогрессивное человечество считает, что без www — nowww.ru, многие западные эксперты считают обратное.

Однако речь не об этом, а о том, как в наших любимых web серверах организовать постоянный редирект туда-обратно.

Читать дальше →
Total votes 42: ↑37.5 and ↓4.5 +33
Views 21K
Comments 59

Кеширование статики через expires и asset timestamps

Ruby *
Для ускорения загрузки страницы можно выставлять у статичных компонентов заголовок expires далеко в будущее.
Однако есть одна проблема: вам придётся менять название файла или путь к нему, чтобы пользователь узнал, что файл нужно перечитать.

В Rails есть полезная возможность assets timestamps, если честно, раньше не понимал зачем это нужно.

Разберёмся?

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 1.3K
Comments 3

LDAP для интернет-проекта

System administration *
Ссылки на остальные части: вторая, третья, четвертая, пятая

Наверное все согласятся с тем, что для начинающего интернет-проекта необходима централизованная система AAA (Authentication, Authorization, Accounting): множество пользователей, куча боевых серверов, чуть поменьше серверов разработки, svn, админки, etc…
Передо мной тоже встала такая необходимость и я хочу рассказать о том что у меня получилось.
Итак, что нам потребуется установить и настроить:
  1. OpenLDAP, естественно с репликацией
  2. Бэкап LDAP'а — именно вторым пунктом, можно первым (-;
  3. phpldapadmin, планирование групп и шаблонов
  4. авторизация для админок — Apache HTTPD mod_ldap
  5. авторизация для svn (+sasl)
  6. авторизация для доступа по ssh — pam_ldap

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 16K
Comments 5

LDAP для интернет-проекта. Часть 3

System administration *
В первой и второй части мы установили и настроили OpenLDAP, можно приступать к настройке авторизации для наших сервисов.
Сегодня у нас по плану настройка авторизации для админок в Apache HTTPD через mod_ldap и SVN.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 9.5K
Comments 4

misultin — легкий встраиваемый веб-сервер на Erlang

Erlang/OTP *
image Этим летом в полку легких веб-серверов на Эрланге прибыло. Roberto Ostinelli опубликовал свою разработку — misultin. Это библиотека для создания легких быстродействующих HTTP-серверов. В этом плане проект напоминает mochiweb, но акцент еще больше сделан на скорость. По тестам автора misultin обгоняет mochiweb примерно на 50-60% при одновременной работе с 100-200 клиентами.
Функциональность пока беднее, но присутствуют базовые вещи для создания сервисов: отправка простых ответов, файлов, поддержка RESTful, удобная отправка ответов по частям (стриминг). Автор планирует далее развивать проект добавлять новые возможности.

Коллеги, возмножно, кто имел дело с данной библиотекой? Какие отзывы?

>-|-|-(°>
Total votes 37: ↑31 and ↓6 +25
Views 3.9K
Comments 32

0W-httpd — простой быстрый фронтэнд

High performance *
Предлагаю решение, как быстро и просто поставить на сервере легкий фронтэнд для отдачи картинок, css-файлов и прочей статики. С лета 2002 года я для данных целей использую 0W-httpd или ZeroWait httpd, как его часто называют в разных источниках (искать что-то о нем, помимо дистрибутива, лучше по второму названию).
Установить и настроить его достаточно просто (даже слишком просто):
Читать дальше →
Total votes 60: ↑54 and ↓6 +48
Views 1.4K
Comments 50

HowTo: Cacti 0.8.7g + Plugin Architecture 2.9 + Spine 0.8.7g на CentOS 5.5 i386

Configuring Linux *
cacti
Cacti — Веб-приложение которое поможет Вам мониторить состояние вашего сервера, CISCO и всего что может отдавать данные по SNMP протоколу. Вы сможете наблюдать за загрузкой CPU сервера, видеть на графике среднюю загрузку памяти за период времени, количество DNS запросов приходящих на сервер, количество писем (спама) приходящих на почтовый сервер. Сможете мониторить среднюю нагрузку на сеть в рабочие часы и многое другое.

Cacti Plugin Architecture — дополнение для Cacti расширяющее возможности стандартного пакета путем включения функции установки стороних плагинов.

Spine — быстрый и качественный поллер для Cacti написанный на C. Используется взамен стандартного поллера, идущего в стандартной инсталляции Cacti, cmd.php.

Показательная, базовая установка Cacti с прибомбасами на CentOS 5.5 i386. Многие элементы настройки защиты веб-сервера игнорируются, ввиду тестовой инсталляции.Все действия будут выполняться под рутом.
Приступим
Total votes 41: ↑35 and ↓6 +29
Views 14K
Comments 23

Apache HTTP Server: Обслуживание нескольких HTTPS-хостов на одном IP-адресе

Server Administration *
Sandbox
При миграции сервера в облако возникла необходимость разместить несколько веб-сайтов, работающих по HTTPS на одном физическом IP-адресе.
При этом нужно было остаться на той же операционной системе CentOS 5.6 и штатном apache-2.2.19.
Готового решения для CentOS не нашел, поэтому предлагаю свой вариант решения.

Теория


Согласно RFC 4366, раздел 3.1. Server Name Indication это возможно.
Для полноценной работы это расширение должен поддерживать и сервер и клиент (браузер).

Практика


Поддержка расширения SNI согласно Wikipedia появилась в Apache HTTP Server начиная с версии 2.2.12.
Подробности есть в Apache Wiki.
Для работы расширения нужна библиотека OpenSSL версии 0.9.8f или выше.
Проблема в том, что в CentOS 5.6 встроен OpenSSL версии 0.9.8e, и «поднять» ему версию не так то просто, т.к. именно на эту версию завязано много других компонент.
Собирать отдельный OpenSSL и Apache вне дерева пакетов — неспортивно.
В процессе поиска решения наткнулся на альтернативу: библиотеку gnutls и модуль mod_gnutls.
Библиотека gnutls в системе тоже присутствует и тоже очень старая, правда достаточно безболезненно удаляется вместе с зависимостями.

В результате были собраны и установлены «свежие» пакеты gnutls и mod_gnutls, которые дали нужный функционал с минимальным влиянием на остальную систему. Под катом подробности по процессу сборки и примеры файлов конфигурации.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Views 18K
Comments 32

Карманный Groupware-сервер: оценка производительности

Nginx *
Интернет пришел в Россию в 1995-96гг. Среднестатистическим компьютером тогда был AMD 486DX150 или Intel Pentium100 с RAM 4-8 Mb и HDD 100-400 Mb. Как раз тогда появился Windows 95, и именно новая ОС и потребовала апгрейдов железа до указанных величин, т.к. на типичных для 94го года компьютерах 486 SX25 или DX66 с 2-4 Mb Win95 еле ворочался. Интернет-серверами и роутерами у провайдеров в те годы были точно такие же машины, или даже более слабые, т.к. Linux тогда еще вполне комфортно себя чувствовал на 2 Мб (без GUI), сайты были в основном статическими, и почтового спама еще не было. Доступ к интернету имел в лучшем случае один на тысячу человек — по нескольку сотен человек в среднем российском областном центре, и все они работали через единичные провайдерские почтовые и веб-серверы. То есть один сервер указанной ничтожной по современным меркам конфигурации обслуживал примерно столько человек, сколько сейчас интернет-пользователей в довольно крупном предприятии. И справлялся…

Есть ли сейчас компьютеры сопоставимой мощности (если слово мощность еще применимо к такому железу), и как они используются? Есть. Нет, это не роутеры и тем более не смартфоны — те и другие заметно производительнее, даже если рассматривать только домашние роутеры и самые простые телефоны. Роутеры легко прокачивают 100Мбит, а телефоны легко крутят видео, да и память у телефонов на сотни мегабайт — ничего такого и близко не было в 96м году. Надо искать более слабые процессоры сопоставимые с Pentium100, то есть около 100МГц или до 200 DMIPS…

Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views 2.5K
Comments 40

Введение в SELinux: модификация политики targeted для сторонних веб-приложений

Positive Technologies corporate blog Information Security *Website development *
Привет, коллеги!
Многие из нас занимаются настройкой рабочих серверов для веб-проектов. Я не буду рассказывать о том, как настроить Apache или Nginx: вы знаете об этом больше меня. Но один важный аспект создания frontend-серверов остается неосвещенным: это настройки подсистем безопасности. «Отключите SELinux», — вот стандартная рекомендация большинства любительских руководств. Мне кажется, что это поспешное решение, ибо процесс настройки подсистем безопасности в режиме «мягкой» политики чаще всего весьма тривиален.

Сегодня я расскажу вам о некоторых методах настройки подсистемы безопасности SELinux, применяемой в семействе операционных систем Red Hat (CentOS). В качестве примера мы настроим связку для веб-сервера Apache + mod_wsgi + Django + ZEO на CentOS версии 5.8.

Читать дальше →
Total votes 54: ↑49 and ↓5 +44
Views 30K
Comments 32

Настройка интернет шлюза для небольшого офиса CentOS, Iptables, NAT, Squid Transparent, Sarg

Configuring Linux *System administration *
Recovery mode
Sandbox
Tutorial
Прошли времена, когда в нашем офисе было 2 компьютера, и DSL модем на 4 порта с интернетом в 2 мегабита
спасал ситуацию. Сейчас в офисе 5 рабочих машин и 1 сервер для задач разработчиков.

При соединении всех в свич со стандартным Tp Link шлюзом, если кто начинал качать, интернет зависал у всех. Было принято решение создать свой шлюз интернета, с шейпером трафика, DNS, DHCP и статистикой ( squid + sarg) и прокси.

В качестве сервера был выбран DualCore pentium, 4 GB RAM с установленной на борту CentOS 6.4 minimal.
Итак, приступим к конфигурации нашего будущего интернет шлюза.

Задача стоит, настроить:
Раздачу интернета через NAT (iptables, htb), DHCP,DNS, HTTPD, NGINX, SARG
Читать дальше →
Total votes 13: ↑7 and ↓6 +1
Views 92K
Comments 18

Горизонтальное масштабирование небольших Web-приложений на Java (вопросы собеседований)

Programming *Java *
Tutorial
Эта тема была поднята в ходе нескольких (3+) собеседований который я прошёл за последние полтора месяца — в разных вариациях но примерно об одном. Казалось бы, известные вещи — но собрав все ответы и объяснения какие я давал (и кое-что что нашёл позже в гугле), решил сохранить их не у себя в гугл-драйве, а написать краткий обзор.

Речь шла о небольших и типовых приложениях Enterprise / Web на Java, каких пишется множество (ну такие, на 10-100 тысяч клиентов, миллион посещений и т.п.). Пусть это будет обобщённый диалог в виде вопросов и ответов.

 

В: Допустим, у вас есть приложение (самое обычное — JSP, Spring, Hibernate например) развернутое на томкате (Apache Tomcat) и вы однажды замечаете что сервер с томкатом загружен на 80% в среднем. Что делать?

Читать дальше →
Total votes 53: ↑44 and ↓9 +35
Views 33K
Comments 87

Установка последних RedMine + Apache + nginx

Ruby *
Sandbox
Tutorial
Redmine logo

Приведу кратко основное по RedMine:
  • ведение нескольких проектов;
  • система отслеживания ошибок;
  • диаграммы Ганта;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с системами управления версиями (SVN, Git, Mercurial);


Мне очень Важно было установить свежие версии всех модулей, почерпнул много источников, но практически все с недоделками, и очень таки неудобная конфигурация у них получалась.
Вот и пришлось самому сделать универсальную конфигурацию, которая может работать под любой из основных Веб-серверов.
Читать дальше →
Total votes 47: ↑22 and ↓25 -3
Views 47K
Comments 22

SOAP и REST сервисы с помощью Python-библиотеки Spyne

Python *Development for Linux *
Sandbox

Знакомство с библиотекой Spyne


В данной статье я хочу рассказать о замечательной Python-библиотеке Spyne. Мое знакомство с Spyne началось в тот момент, когда передо мной поставили задачу написать Веб-сервис, который будет принимать и отдавать запросы через SOAP-протокол. Немного погуглив я наткнулся на Spyne, которая является форком библиотеки soaplib. А еще я был удивлен, насколько мало русскоязычной информации встречается о данной библиотеке.

С помощью Spyne можно писать веб-сервисы, которые умеют работать с SOAP, JSON, YAML, а написанный скрипт можно запустить через mod_wsgi Apache. Итак, давайте рассмотрим несколько примеров, напишем работающие скрипты и настроим так, чтобы скрипты работали через apache.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 32K
Comments 6

Битва WEB серверов. Часть 2 – реалистичный сценарий HTTPS:

UltraVDS corporate blog Nginx *Apache *IIS *


О методике мы рассказывали в первой части статьи, в этой мы тестируем HTTPS, но в более реалистичных сценариях. Для тестирования был получен сертификат Let’s Encrypt, включено сжатие Brotli на 11.

На этот раз попробуем воспроизвести сценарий развертывания сервера на VDS или в качестве виртуальной машины на хосте с типовым процессором. Для этого устанавливали лимит в:

  • 25% — Что в пересчете на частоту ~ 1350МГц
  • 35% -1890Мгц
  • 41% — 2214Мгц
  • 65% — 3510Мгц

Количество единовременных подключений сократилось с 500 до 1, 3, 5, 7 и 9,
Читать дальше →
Total votes 24: ↑20 and ↓4 +16
Views 7.9K
Comments 13

Как подключить содержимое любых файлов для использования в коде C / C++

Programming *Perfect code *C++ *Debugging *C *
Sandbox

Задача состояла в подключении файлов: HTML, JS, CSS; без специальной подготовки. Так же неудобно подключать бинарные файлы (например картинки) конвертируя их в HEX. Так как не хотелось конвертировать в HEX или разделять на строки, искал способ подключения файла в адресное пространство программы.

Читать дальше →
Total votes 84: ↑83 and ↓1 +82
Views 16K
Comments 33

Установка дополнительных версий PHP в VestaCP с помощью Docker

Timeweb corporate blog Hosting Configuring Linux *PHP *Server Administration *
Tutorial

Наверное, многие сталкивались с ситуацией, когда среди проектов работающих на современном ПО, остается пара полузабытых, а держать отдельную машину под них не хочется. Вариантов решения масса, но в службе поддержки хостинг-компании данная проблема не теряет своей актуальности м моими коллегами был разработан скрипт, помогающий добавить нужную версию php в VestaCP буквально за пару минут. Данный метод уже зарекомендовал себя с хорошей стороны и продолжает радовать сотрудников поддержки. Самое время его опубликовать и помочь всем, кто столкнулся с подобной проблемой.

Читать далее
Total votes 1: ↑1 and ↓0 +1
Views 1.1K
Comments 9