Рубрика «nginx» - 21

Nginx, однозначно, один из крутейших веб-серверов. Однако, будучи в меру простым, довольно расширяемым и производительным, он требует уважительного отношения к себе. Впрочем, это относится к почти любому ПО, от которого зависит безопасность и работоспособность сервиса. Признаюсь, нам нравится Nginx. В Яндексе он представлен огромным количеством инсталляций с разнообразной конфигурацией: от простых reverse proxy до полноценных приложений. Благодаря такому разнообразию у нас накопился некий опыт его [не]безопасного конфигурирования, которым мы хотим поделиться.

Gixy — open source от Яндекса, который сделает конфигурирование Nginx безопасным - 1

Но обо всем по порядку. Нас давно терзал вопрос безопасного конфигурирования Nginx, ведь он — полноправный кубик веб-приложения, а значит, и его конфигурация требует не меньшего контроля с нашей стороны, чем код самого приложения. В прошлом году нам стало очевидно, что этот процесс требует серьезной автоматизации. Так начался in-house проект Gixy, требования к которому мы обозначили следующим образом:

— быть простым;
— но расширяемым;
— с возможностью удобного встраивания в процессы тестирования;
— неплохо бы уметь резолвить инклюды;
— и работать с переменными;
— и про регулярные выражения не забыть.
Читать полностью »

Переезд XenForo форума на современную платформу - 1

Зачем это было нужно

Площадка для сообщества нашего продукта давно работает на базе форумного движка XenForo. До недавнего времени, форум работал VPS на базе CentOS 6.8 с вендорским Apache 2.2.15, MySQL 5.1 и PHP 5.6.

В связи с приближающимся релизом XenForo 2.0, у которого повышенные требования к компонентам, и общим желанием ускорить работу форума на современной компонентной базе, было принято решение о переезде на VPS с nginx, последней версией PHP и базой данных, работающей на Percona Server 5.7.

Приведенная ниже инструкция не претендует на идеальное решение с идеальной конфигурацией и может рассматриваться как общий план использования XenForo на nginx хостинге. Инструкция в первую очередь предназначена для тех администраторов XenForo, которые не слишком сильны в тонкостях администрирования Linux и хотели бы иметь какую-то общую базовую инструкцию.
Читать полностью »

Nginx + Lua, гибкая балансировка нагрузки с сохранением сессии - 1

При балансировке нагрузки важный вопрос — сохранение сессии клиента. Особенно, если за балансировщиком стоит какой-то интерактивный backend. И тем более, если захотелось сделать A/B тестирование и гибко регулировать порции клиентов к различному содержанию. "Nginx plus" предлагает такие возможности, но что делать, если хочется дёшево и быстро?

На помощь приходит возможность расширить функционал Nginx с помощью Lua.

Читать полностью »

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

Читать полностью »

В сети можно найти инструкции разной степени давности и полноты представленной информации по теме вынесенной в заголовок статьи, но даже собрав их все воедино, потребуются прямые руки, напильник и некоторое количество терпения для достижения желанного катарсиса.
Asterisk. Интеграция с amoCRM, step-by-step guide - 1

Здесь я представлю свой опыт подключения Asterisk к amoCRM в виде пошаговой инструкции, осветив все необходимые нюансы, начиная от получения ssl-сертификата, настройки web-сервера и заканчивая демонстрацией работы получившейся связки.

Читать полностью »

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100% - 1

Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да браться.

Читать полностью »

Тема моей сегодняшней заметки странная.
Начну с предисловия. Как-то один знакомый задал в нашем небольшом телеграм-чате вопрос: «Коллеги, а вы не знаете каких-нибудь веб-терминалов? А то порой нужно зайти на свой сервер с работы, а тут все порезано по самые гланды», ну задал и задал, все сказали «Да вроде сходу ничего не знаем», но у меня, в силу специфики мышления, вопрос его в голове отложился. Однажды ночью я читал документацию по GTK3 и натолкнулся на GDK_BACKEND=broadway. Бэкэнд использующий HTML5 и websockets для отображения GTK3 приложений. Что-то щелкнуло в мозгу, но щелкнуло странно, что вроде кому-то зачем-то нужно было, на зачем не помню и кому тоже.
Читать полностью »

Сразу оговорюсь что поставленную задачу можно решить несколькими способами. Этот один из возможных.
Статья рассчитана на тех, кто знает как настраиваются и работают Exim и Dovecot, и в ней я не будут останавливаться на базовых настройках этих сервисов.

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

Задача построить отказоустойчивый сервис, с хранением почты на серверах, с доступом по IMAP.
Кластер будет обслуживать компанию с порядком 60-ти филиалов, каждый из которых имеет свой домен 3-го уровня.

Главная задача сервиса, беспрерывный доступ к почте. Поэтому для хранилища будем использовать два географически разнесенных сервера, с синхронизацией почтовых каталогов.
Оба сервера будут активными, это значит что мы будем распределять нагрузку между нодами. Часть доменов будет обслуживать одна нода, часть доменов другая. В случае выхода из строя одной из нод, клиенты переключаются на другую.
В качестве фронтенда для распределения нагрузки маршрутизации клиентов будем использовать Nginx с модулем mail. Для приема почты, будем использовать два smtp сервера.

Схема:
Почтовый кластер своими руками - 1
Читать полностью »

Архитектура растущего проекта на примере ВКонтакте - 1

Алексей Акулович объясняет жизненный путь высоконагруженного проекта на PHP. Это — расшифровка Highload ++ 2016.

Меня зовут Лёша, я пишу на PHP.

К счастью, доклад не об этом. Доклад будет про ретроспективу развития сети — того, как проект развивался. Какие решения капитанские или весьма специфические для нашей нагрузки мы применяли, что можно использовать в других проектах, которые испытывают нагрузки.

Начнём.
Читать полностью »

Tarantool: нагрузочное тестирование - 1

В статье "Tarantool: Хороший, Плохой, Злой" был описан простой сервис голосования с действующим примером на PHP. Мы увидели, как легко подключить и использовать эту NoSQL базу данных в своих программах. Однако остался без внимания один важный вопрос – зачем это? Какой выигрыш в производительности дает использование NoSQL по сравнению с обычными базами данных?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js