Технический директор в Агентство Рупор
· 03.07Попробовал модный веб-сервер Caddy вместо Nginx.
Обычно в архитектуре проектов я использую голый NGINX. Мой блог вряд ли в первое время столкнётся с высокими нагрузками, поэтому можно поэкспериментировать.
NGINX (Engine X) — самый популярный веб-сервер (33% рынка), написанный на C. Изначально был написан 20 лет назад программистом из Rambler. Раньше Nginx многие использовали как обратный прокси для Apache2, чтобы его ускорить. Nginx занимался статичными файлами (картинки, CSS), а Apache2 запускал PHP-скрипты. Постепенно Apache2 стали убирать и всю работу переносить на Nginx, потому что он быстрее и лучше держит большие нагрузки. Есть большая экосистема дополнений, отличная документация и множество примеров использования. Стабильный продукт, с которым я работаю на всех проектах.
А тут в инфополе стал мелькать Caddy. Чем же он покоряет разработчиков? - Более лёгкая конфигурация SSL-сертификатов. Точнее, её нет, Caddy делает всё сам — пользователю больше не нужно настраивать стандартные сертификаты Let's Encrypt. - Поддержка HTTP/2 и HTTP/3 из коробки. - Поддержка компрессии gzip и zstd из коробки. - Простой синтаксис конфигурационных файлов. Очень похож на Nginx, но проще и яснее. Конфиги сокращаются в размере, вероятность ошибки ниже. - Caddy — это всего один исполняемый файл без зависимостей. Его легко устанавливать и обновлять. - Новый плагин можно подключить к Caddy без перезагрузки и простоя в работе. - После установки Caddy показал симпатичную страницу по-умолчанию с небольшой инструкцией.
Есть у него и минус: - Caddy на предельной нагрузке может обработать меньше запросов, чем Nginx. Приоритет Caddy на простоте использования и автоматизации. На этом бенчмарке разница начинается от 10 тысяч запросов в секунду, что практически недостижимо для маленьких проектов.
Мои впечатления — мне понравилось с ним работать. Действительно, легкая установка и конфигурация. Видно, что авторы много работали с другими веб-серверами и свой продукт сделали удобным и современным.
На моём сайте пока что висит статическая заглушка, вот весь конфиг: `fullstackfounder.ru { root * /var/www/fullstackfounder.ru/public file_server encode zstd gzip }
www.fullstackfounder.ru { redir https://fullstackfounder.ru{uri} permanent }
Аналогичный конфиг у Nginx выглядел бы вот так: `server { listen 80; server_name fullstackfounder.ru www.fullstackfounder.ru;
# Redirect all HTTP to HTTPS return 301 https://$host$request_uri; }
server { listen 443 ssl http2; server_name fullstackfounder.ru;
ssl_certificate /etc/letsencrypt/live/fullstackfounder.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/fullstackfounder.ru/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/fullstackfounder.ru/public; index index.html index.htm;
# Enable gzip gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# Canonical redirect: www → non-www if ($host = 'www.fullstackfounder.ru') { return 301 https://fullstackfounder.ru$request_uri; }
location / { try_files $uri $uri/ =404; } }
Очевидно, что при работе с Caddy будет проще всё настроить. Мой вывод: дружелюбный сервер для разработки, DevOps, небольших проектов и соло-разработчиков. Сомневаюсь, что он завоюет высокие нагрузки, но свой вклад в улучшение веб-серверов он уже внёс.
Буду запускать на нём WordPress, посмотрим, что из этого выйдет.
❤️ Жми на сердечко, если интересно ⚡️ Жми на молнию, если узнал новое 🧑💻 Жми на ботана, если используешь веб-серверы``
еще контент автора
еще контент автора
Технический директор в Агентство Рупор
· 03.07войдите, чтобы увидеть
и подписаться на интересных профи