Углубленный анализ и сравнение веб-сервера Caddy: Caddy, Nginx и Apache.
Углубленный анализ и сравнение веб-сервера Caddy: Caddy, Nginx и Apache.

🚀 Углубленный анализ и сравнение веб-сервера Caddy: Caddy, Nginx и Apache.

краткое содержание 🐅 Блогер с кошачьей головой и тигром уже здесь! вместе с Web С развитием серверов выбор правильного сервера становится все более важным. ты слышал о Кэдди, эта автоматическая поддержка HTTPS из Web сервер? Или вы рассматриваете возможность использования Nginx и Апач? В этой статье будет подробно рассмотрено Кэдди и с Nginx и Apache Сделайте сравнение. Если вы исследуете Web сервер или поиск “Caddy и Nginx и Apache из Сравнения», то эта статья для вас нуждатьсяиз!


введение

С современным Web Сложность применения увеличивается, выбор подходящего Web Сервер – это уже не только технологические выборы, но и затраты на техническое обслуживание. Кэдди, Nginx и Apache Оба хороши, но в чем различия?


🌐 1. Знакомство с веб-сервером Caddy

1.1 Что такое Кэдди

Caddy это использование Go Языковое написание с открытым исходным кодом HTTP/2 web сервер,этоиз Основные преимуществадаавтоматическийподдерживать HTTPS и краткий из Метод настройки。

Язык кода:javascript
копировать
your-domain.com {
    reverse_proxy /api/* 127.0.0.1:8080
}
1.2 Расширенная настройка Caddy

из автоматического HTTPS Статический файловый сервис Caddy Обеспечивает богатые функции,нравиться:

Язык кода:javascript
копировать
header / {
    X-Custom-Header "Some value"
}
1.3 Другие конфигурации Caddy

Caddy Предоставляет очень богатые возможности конфигурации для удовлетворения всех видов потребностей. да Некоторые ниже существуют Caddyfile Обычно используется в китайском языке Конфигурация:

сжатие:использовать encode Директива включает кодирование контента для ответов.

Язык кода:javascript
копировать
encode gzip zstd

регистрацияlog Директива позволяет вести журнал и вывод и форматировать.

Язык кода:javascript
копировать
log {
    output file /path/to/logfile.log
    format json
}

Запросить перезаписьrewrite Директивы могут изменять атрибуты запроса.

Язык кода:javascript
копировать
rewrite /api/* /new-api/*

Заголовки запроса и ответа:ты Можетиспользовать header команды для добавления, удаления или изменения HTTP голова.

Язык кода:javascript
копировать
header / {
    X-Custom-Header "Some value"
    -Server
}

предел скоростиlimit Директивы могут оценивать запросы на ограничение.

Язык кода:javascript
копировать
limit rate 10r/s burst 5

базовая аутентификация:использовать basicauth Базовый можно включить для определенных путей. HTTP Сертификация.

Язык кода:javascript
копировать
basicauth /protected/* {
    user1 hashed_password1
    user2 hashed_password2
}

Междоменное совместное использование ресурсов (CORS):Можетиспользоватьсторонние плагины или header Инструкция по ручной настройке CORS голова.

проверка здоровья:существоватьиспользоватьбалансировка нагрузкичас,Может Конфигурацияпроверка здоровья, чтобы определить, какие серверные части исправны.

Язык кода:javascript
копировать
reverse_proxy / {
    to backend1:8080 backend2:8080
    health_path /healthcheck
    health_interval 30s
}

Статический файловый сервисfile_server Команда может сделать Caddy Действует как статический файловый сервер.

Язык кода:javascript
копировать
file_server

Пользовательская страница ошибок:использовать handle_errors Можно определить, как обрабатывать ошибки.

Язык кода:javascript
копировать
handle_errors {
    rewrite * /error{http.error.status_code}.html
    file_server
}

Caddy Сила «существовать» заключается в его масштабируемости и гибкости. Пользователи могут глубоко настраивать его в соответствии с потребностями. Если нуждаться имеет больше функций или Конфигурация, рекомендуется проверить Caddy из Официальной документации.


1.4 Как Caddy настраивает балансировку нагрузки проекта Springboot и обратный прокси

Чтобы использовать Caddy для Spring Boot проект Конфигурациябалансировка нагрузкииобратный прокси,ты Может Следовать за Внизшаг:

1. Установите Кэдди

Сначала убедитесь, что вы установили Caddy。нравиться Фруктов еще нет Установить,Пожалуйста, обратитесь к официальной документации, чтобы Установитьподходящийиз Версия。

2. Создать Caddyfile

Caddyfile да Caddy из файла конфигурации. существуешь, ты планируешь бежать Caddy из каталога создать имя для Caddyfile из файла.

3. Настройте Caddyfile

Один из следующих Caddyfile из Пример Конфигурация для двоих Spring Boot Приведены примерыбалансировка нагрузкииобратный прокси:

Язык кода:javascript
копировать
your-domain.com {
    reverse_proxy / {
        lb_policy round_robin
        to 127.0.0.1:8080 127.0.0.1:8081
    }
}

Здесь да Конфигурация объясняет:

  • your-domain.com:замените этодлятыиздоменное имя。
  • reverse_proxy /:Конфигурация Caddy дляобратный прокси。
  • lb_policy round_robin:настраиватьбалансировка нагрузки Стратегиядляопрос。
  • to 127.0.0.1:8080 127.0.0.1:8081:Укажите серверную часть Spring Boot Экземпляр из адреса ипорт.существовать В этом примере у нас есть два работающих экземпляра соответственно. 8080 и 8081 порт.
4. Запустите Кэдди

В существующем каталоге Caddyfile выполните следующую команду:

Язык кода:javascript
копировать
caddy run

Это начнется Кэдди, он будет основан на Caddyfile из Конфигурациядлятыиз Spring Boot Предусмотренная проектомбалансировка нагрузкииобратный прокси。

На что следует обратить внимание

Убедитесь, что вы Spring Boot Экземпляр проекта работает на порту существующей Конфигурация, и к нему можно получить доступ из Caddy сервер Посетить. Если ты Spring Boot Проект и Caddy существуют разные машины, тогда необходимо обеспечить порт и IP Адрес настроен правильно.

также,нравитьсяфруктытыиспользоватьизда Caddy из Автоматический HTTPS функция, гарантирующая, что доменное имя правильно указано Caddy сервериз IP адрес и DNS Настройки настроены правильно.

🔄 2. Nginx и Apache: традиции и сила

2.1 Nginx

Nginx также является высокопроизводительным обратным прокси-сервером HTTP. Этот метод является самодекларативным в конфигурации и очень гибким.

Язык кода:javascript
копировать
location / {
    proxy_pass http://localhost:8080;
}
2.2 Apache

Apache да имеет долгую историю Web сервер,поддерживать Богатыйизмодульи .htaccess конфигурация.

Язык кода:javascript
копировать
<VirtualHost *:80>
    ProxyPass /app/ http://localhost:8080/
</VirtualHost>

🔍 3. Caddy vs. Nginx vs. Apache

Используем сравнительную таблицу,Перечислены основные возможности и функции этих трех сервериз.,От разработки языка до кроссплатформенности,для Вы предоставляете всестороннюю перспективу.

В следующей таблице сравнения Caddy, Nginx и Apache перечислены некоторые из их ключевых функций и возможностей:

Особенности/Функции

Caddy

Nginx

Apache

язык разработки

Go

C

C

лицензия

Apache 2.0

2-Clause BSD-like

Apache 2.0

Автоматический HTTPS

да (поддерживается по умолчанию)

нуждатьсядополнительныймодульи Конфигурация

нуждатьсядополнительныймодульи Конфигурация

HTTP/2 & HTTP/3

поддерживать

поддерживать

поддерживать (требуется дополнительная настройка)

Метод настройки

Caddyfile (кратко)

nginx.conf (декларативный)

.htaccess и httpd.conf

обратный прокси

Роднойподдерживать

Роднойподдерживать

Требуется модуль mod_proxy

балансировка нагрузки

Роднойподдерживать

Роднойподдерживать

Требуется модуль mod_proxy_balancer

Система модулей/плагинов

поддерживать (динамическая загрузка)

поддерживать (обычно компилируется статически)

поддерживать (динамическая загрузка)

производительность

высокий (особенносуществоватьпо умолчанию Конфигурация Вниз)

высокий

Умеренный (но можно оптимизировать)

безопасность

Создан для обеспечения безопасности (HTTPS по умолчанию).

Безопасно, но необходимо позаботиться о настройке

Безопасно, но необходимо позаботиться о настройкеимодуль

Подходит для начинающих

высокий (Автоматический HTTPS, простота и простота Конфигурация)

Умеренный (конфигурация немного сложна)

Низкий (Конфигурацияимодуль Управление относительнодлясложный)

Кросс-платформенный

да

да

да

Эта таблица представляет собой лишь упрощенное сравнение.,В основном сосредоточьтесь на общей функциональности и основных функциях. В реальном использовании,Каждый сервер имеет свои уникальные характеристики и преимущества.,Какая из них зависит от конкретных потребностей и предпочтений. Например,Хотя Caddy из Автоматический HTTPS Простая из Конфигурация очень нравится новичкам, но Nginx и Apache существование может быть более выгодным в некоторых сложных и крупномасштабных сценариях развертывания.


💡 Резюме

выбирать Web сервера зависит не только от технических потребностей, но и от долгосрочных затрат на обслуживание и обучение. Кэдди изкраткийи Автоматический HTTPS Особенности делают его современным Web Очень популярен в разработке. но Nginx и Apache Он также имеет свои уникальные преимущества и долгосрочную стабильность.


📚 Рекомендации

  1. Caddy Официальная документация: https://caddyserver.com/docs
  2. Nginx Официальная документация: http://nginx.org/en/docs/
  3. Apache Официальная документация: https://httpd.apache.org/docs/
boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.