Как стать автором
Обновить
14.76

Nginx *

Веб-сервер и почтовый прокси-сервер

Сначала показывать
Порог рейтинга
Уровень сложности

Откуда берется заголовок Content-Type: nginx + php-fpm

Время на прочтение5 мин
Количество просмотров9.4K
Rocket science не будет. Если вы используете php-fpm, то скорее всего в связке с nginx. Простой вопрос: как в PHP получить значения HTTP заголовков запроса клиента?

  1. Например, стандартные Accept, Host или Referer?
  2. Знаете? Здорово! А как получить значение Content-Type, Content-Length?
  3. Ничем вас не удивить, а как получить значение произвольного заголовка, например X-Forwarded-For?

image
Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии10

Перенос форума IPB в bbPress WordPress

Время на прочтение4 мин
Количество просмотров3.9K

Перенос форума Invision Power Board (Invision Community) на платформу Wordpress под bbPress

Как я переносил форум IPB на WP под bbPress. Танцы с бубном в конце недели. Все закончилось успешно, но не до конца...

Читать далее
Всего голосов 12: ↑6 и ↓60
Комментарии5

Использование Nginx FastCGI Cache

Время на прочтение9 мин
Количество просмотров26K

FastCGI Cache — это система кэширования данных реализованая на уровне HTTP-сервера Nginx.

Преимущество FastCGI Cache заключается в том, что Nginx вернёт закешированный ответ пользователю сразу, как только получит запрос, при этом слой приложения не будет вовсе обрабатывать поступивший HTTP-запрос, если он имеется в кэше Nginx. 

Использование FastCGI Cache — отличный способ снизить нагрузку на вашу систему.

Если на вашем сайте есть страницы, которые изменяются редко или задержка обновления информации на некоторое время не критична, то FastCGI Cache именно то, что нужно.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии16

Оптимизация: Настройка веб-сервера Nginx для улучшения показателей RPS в HTTP API

Время на прочтение6 мин
Количество просмотров14K

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

Мы столкнулись с указанной выше проблемой, когда наша развернутая система ежедневно использовалась миллионом пользователей, которые подключались всплесками время от времени. Это значит, что развертывание нескольких серверов или их масштабирование не будет в данной ситуации оптимальным решением.
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии5

Истории

Я сделал свой PyPI-репозитарий с авторизацией и S3. На Nginx

Время на прочтение11 мин
Количество просмотров2.5K

В данной статье хочу поделится опытом работы с NJS, интерпретатора JavaScript для Nginx разрабатываемого в компании Nginx inc, описав на реальном примере его основные возможности. NJS это подмножество ЯП JavaScript, которое позволяет расширить функциональность Nginx.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии8

Некоторые аспекты управления VDS-сервером под Linux

Время на прочтение9 мин
Количество просмотров13K
VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.

На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.



Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории (apt install nginx). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии9

Магия 2-х строк на Lua или как донести исходные заголовки HTTP Authorization header-авторизации до web-сервиcа

Время на прочтение4 мин
Количество просмотров3K
Статья будет полезна тем:

  • кому необходимо задействовать несколько видов авторизации в одном запросе к серверу;
  • кто хочет открывать сервисы мира Kubernetes/Docker в общий интернет, не задумываясь о способах защиты конкретного сервиса;
  • думает, что всё уже кем-то сделано, и хотел бы сделать мир немного удобнее и безопаснее.

Предисловие

Сервисы, которые становятся доступны через Kubernetes, имеют богатый набор способов авторизации. Один из наиболее модных – это заголовок Authorization: Bearer — это, например: JWT-авторизация (JSON Web Token) с передачей множества ключей, а следовательно, и значений, в одном заголовке. Встречаются и Basic-авторизации, например для Registry (хранилище образов Docker). Данная авторизация не использует Cookie и автоматически добавляется браузером (кроме Safari — там есть нюансы, которые мы пока не решаем) ко всем запросам к серверу.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

Как случайно продолжить писать Web-GUI для Haproxy

Время на прочтение2 мин
Количество просмотров6.3K
Прошло два года и 4 дня, как я написал Как случайно написать Web-GUI для Haproxy, а воз уже давно не там — все меняется и развивается и HAProxy-WI старается соответствовать этой тенденции. За два года было проделано много работы, об основных изменениях я и хочу сейчас рассказать, так что: добро пожаловать под «кат».


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии4

Отправка Nginx json логов с помощью Vector в Clickhouse и Elasticsearch

Время на прочтение14 мин
Количество просмотров20K


Vector, предназначенный для сбора, преобразования и отправки данных логов, метрик и событий. Его Github


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


Архитектурно Vector является роутером событий, принимающим сообщения из одного или нескольких источников, опционально применяющим над этими сообщениями преобразования, и отправляющим их в один или несколько стоков.


Vector это замена filebeat и logstash, он может выступать в обоих ролях (получать и отправлять логи), более подробней на их сайте.

Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии21

Рецепты uWSGI: преобразование документов с использованием LibreOffice

Время на прочтение2 мин
Количество просмотров1.9K
Для приготовления преобразования документов нам понадобится LibreOffice, uwsgi-python, pylokit и webob. Можно также воспользоваться готовым образом. Но это только для запуска uWSGI-сервера, а для подключения к uWSGI-серверу будем использовать nginx.
Читать дальше →
Всего голосов 4: ↑1 и ↓3-2
Комментарии0

Как мы в ZeroTech подружили Apple Safari и клиентские сертификаты с websocket-ами

Время на прочтение10 мин
Количество просмотров1.2K
Статья будет полезна тем, кто:

  • знает, что такое Client Cert, и понимает для чего ему websocket-ы на мобильном Safari;
  • хотел бы публиковать web-сервисы ограниченному кругу лиц или только себе;
  • думает, что всё уже кем-то сделано, и хотел бы сделать мир немного удобнее и безопаснее.

История веб-сокетов началась примерно 8 лет назад. Ранее использовались методы вида долгих http-запросов (на самом деле ответов): браузер пользователя отправлял запрос на сервер и ждал, пока он ему что-то ответит, после ответа подключался вновь и ждал. Но потом появились веб-сокеты.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Расширенная настройка web сервера (Apache2 + Nginx)

Время на прочтение11 мин
Количество просмотров37K

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


В этой статье будет идти речь о настройке сервера с использованием: Apache2, Nginx, ngx_pagespeed, PHP, PHP-FPM, MariaDB и MemCached.

Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии10

Деплой приложения на Laravel 7 на Ubuntu & Nginx

Время на прочтение11 мин
Количество просмотров22K

Laravel 7 Logo


Решил я тут своё портфолио сделать на Laravel 7. Чтобы главная страница была лендингом, а всю информацию на ней можно было менять с помощью админки. Не суть. Дело дошло до деплоя. Нашел пару хороших туториалов, как это сделать на полноценном сервере со всеми заморочками. В деплое я не очень силен, я вообще больше фронт, чем фулстек. И, если писать и тестить на PHP я еще могу, то до управления сервером и т.п. я еще не дорос. Но пришлось разбираться.


Сейчас пройдемся по всем шагам, начиная с запуска через SSH и заканчивая рабочим сайтом. Постараемся обойти все подводные камни.


Возможно, вы сможете найти аналогичные инструкции в интернете. Ведь я же в конце концов нашел. Правда не в одном месте, не без помощи StackOverflow и вряд ли на русском. Я помучился. Поэтому решил вам жизнь упростить.

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии11

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Что такое Service Mesh?

Время на прочтение5 мин
Количество просмотров63K
И снова здравствуйте!.. В преддверии старта курса «Архитектор ПО» мы подготовили еще один полезный перевод.




Service Mesh – это конфигурируемый инфраструктурный уровень с низкой задержкой, который нужен для обработки большого объема сетевых межпроцессных коммуникаций между программными интерфейсами приложения (API). Service Mesh обеспечивает быструю, надёжную и безопасную коммуникацию между контейнеризированными и часто эфемерными сервисами инфраструктуры приложений. Service Mesh предоставляет такие возможности, как обнаружение сервисов, балансировку нагрузки, шифрование, прозрачность, трассируемость, аутентификацию и авторизацию, а также поддержку шаблона автоматического выключения (circuit breaker).
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Программируем прямо в Nginx

Время на прочтение13 мин
Количество просмотров35K


Nginx — великолепный веб-сервер. Все мы привыкли использовать его в связке с бекендами на разных языках программирования. Но оказывается можно писать простые программы прямо внутри конфигурационного файла Nginx. Это можно использовать для балансировки, написания простых API и даже отдавать динамические страницы прямо из конфига.

В статье мы разберем примеры написания простых программ в конфиге nginx.
Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии23

Приглашаем на DINS DevOps EVENING (online): эволюция Prometheus и Zabbix и обработка логов Nginx в ClickHouse

Время на прочтение2 мин
Количество просмотров1.7K
Онлайн-митап состоится 26 мая в 19:00.

Вячеслав Швецов из DINS расскажет, какие процессы происходят при эволюции систем мониторинга, и подробнее остановится на архитектурных особенностях Prometheus и Zabbix. Глеб Гончаров из FunBox поделится опытом сборки логов Nginx с хранением в ClickHouse. Оба спикера приведут примеры из практики и ответят на вопросы аудитории.

Регистрируйтесь по ссылке, чтобы присоединиться.

Под катом — информация о спикерах и подробная программа.
image
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

HTTP по UDP — используем с пользой протокол QUIC

Время на прочтение4 мин
Количество просмотров12K


QUIC (Quick UDP Internet Connections) — это протокол поверх UDP, поддерживающий все возможности TCP, TLS и HTTP/2 и решающий большинство их проблем. Его часто называют новым или «экспериментальным» протоколом, но он уже давно пережил стадию эксперимента: разработка ведётся более 7 лет. За это время протокол не успел стать стандартом, но всё же получил широкое распространение. Например, QUIC используют для ускорения трафика и снижения задержек в мобильных сетях такие гиганты как Google и Facebook, а IETF объявила свой форк протокола основой для стандарта HTTP/3 (при том, что HTTP/2 использует только 44.8% сайтов).
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии11

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

Время на прочтение11 мин
Количество просмотров29K

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии33

Настройка Debian, Nginx и Gunicorn для Django проекта

Время на прочтение8 мин
Количество просмотров41K


Всем доброго времени суток.

Была задача поднять свой Debian сервер на Nginx для проектов Django 3.х. Перерыв кучу информации в интернете, удалось это сделать соединив рекомендации с нескольких разных сайтов. Если вам интересно почитать, как настроить свой первый сервер для Django-проекта, то — добро пожаловать.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии12

Linux Kernel TLS и Nginx

Время на прочтение4 мин
Количество просмотров12K
В этой статье я расскажу об истории развития и текущем состоянии технологии ускорения раздачи контента в TLS соединениях путем переноса шифрования в ядро операционной системы, а так же о своём вкладе в развитие этого направления.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии24

Вклад авторов