Angie - форк известного веб-сервера nginx, созданный его бывшими разработчиками и преследующий цель стать лучшим nginx чем сам nginx и это не преувеличение. Начавшись как обычный проект импортозамещения Angie сегодня не только предоставляет все возможности nginx, но и предоставляет ряд новых функций и возможностей. А для пользователей, которым просто нужен веб-сервер Angie может предложить достаточно большой выбор готовых модулей в репозитории, это очень важное преимущество, так как в nginx для добавления тех или иных модулей вам потребуется самостоятельно пересобрать продукт
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
В данной статье мы будем рассматривать установку Angie в среде последних версий Debian и Ubuntu, они имеют небольшие различия по версиям используемого ПО, но при этом содержат актуальные версии, что позволит развернуть веб-сервер штатными средствами без подключения дополнительных репозиториев, кроме репозитория Angie. Набор используемого ПО на момент написания статьи таков:
- Debian 12: Angie 1.9.0, PHP 8.2, MariaDB 10.11 LTS
- Ubuntu 24.04 LTS: Angie 1.9.0, PHP 8.3, MySQL 8.0 LTS / MariaDB 10.11 LTS
Все команды, если не указано иного, следует выполнять с правами суперпользователя root или через sudo.
В качестве примера имени сайта мы будем использовать:
- site.example
- www.site.example
Их следует заменить на реальное доменное имя, которое вы будете использовать.
Установка и настройка веб-сервера Angie
Прежде всего установим некоторые утилиты, которые будут необходимы нам для подключения репозитория Angie:
apt install ca-certificates curl
Затем скачаем открытый ключ для проверки подлинности пакетов в репозитории:
curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg
И подключим сам репозиторий:
echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" > /etc/apt/sources.list.d/angie.list
Данное выражение универсально и подходит для всех поддерживаемых выпусков Debian и Ubuntu. Ознакомиться со списком поддерживаемых версий можно на официальной странице.
Затем обновим список пакетов и установим веб-сервер Angie:
apt update
apt install angie
После чего установим дополнительные модули для поддержки современных алгоритмов сжатия brotli и zstd:
apt install angie-module-brotli angie-module-zstd
Перейдем к настройке, для этого откроем основной конфигурационный файл /etc/angie/angie.conf, все опции перечислены в порядке их следования в файле. Сразу изменим пользователя, от имени которого будет работать веб-сервер на стандартного для DEB-систем:
user www-data;
Сразу после строки:
pid /run/angie.pid;
Добавим строки для подключения установленных модулей:
load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Далее, ниже строки:
access_log /var/log/angie/access.log main;
Размещаем опции задающие таймауты и разрешающие сброс соединения по таймауту:
client_header_timeout 30;
client_body_timeout 30;
reset_timedout_connection on;
Ниже укажем максимальный размер тела запроса клиента и буфер для чтения заголовка запроса. Имейте ввиду, что размер тела запроса ограничивает максимальный размер файла, который сможет загрузить веб-сервер:
client_max_body_size 32m;
client_body_buffer_size 128k;
Затем приведем к следующему виду опции, которые разрешают передачу файлов и оптимизируют этот процесс:
sendfile on;
tcp_nopush on;
И укажем таймаут для постоянных (keep-alive) соединений. С одной стороны они позволяют повысить производительность протокола HTTP/1.1, с другой - впустую потребляют ресурсы сервера, поэтому следует найти некоторую золотую середину, оптимальными значениями будет 30-90 сек:
keepalive_timeout 65;
Теперь перейдем к настройкам сжатия. Почему это важно? Скорость ответа сервера является важным параметром поведенческих факторов, который учитывается поисковыми системами, а также повышает отзывчивость сайта для пользователя, позволяя в несколько раз уменьшить размер передаваемой по сети информации. В конфигурации уже имеется блок для GZIP сжатия, это самый старый и наименее эффективный метод сжатия, но он обладает наилучшей совместимостью, так как поддерживается практически всеми браузерами, включая устаревшие. Поэтому не следует игнорировать его настройку.
Приведем опции ниже к следующему виду:
gzip on;
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 256;
gzip_comp_level 4;
Следующей опцией укажем MIME-типы данных, которые подлежат сжатию, список не является исчерпывающим, вы можете добавить него свои типы данных, или исключить те, которые сжимать не считаете нужным:
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml
application/xml application/xml+rss text/javascript application/atom+xml application/rdf+xml image/svg+xml;
На что здесь следует обратить внимание? Прежде всего на опцию gzip_min_length, которая указывает минимальный размер ответа подлежащий шифрованию, по умолчанию он имеет значение 20 байт, мы увеличили его до 256 чтобы исключить излишнюю нагрузку на шифрование коротких ответов, если у вас слабое оборудование или преимущественно статическое содержимое, то можно увеличить это значение до 1024. Опция gzip_comp_level задает степень сжатия, чем она выше - тем эффективнее сжатие, но выше нагрузка на оборудование, поэтому для динамического сжатия лучше выбирать средние уровни компрессии.
Ниже добавим блок для сжатия методом Brotli, это алгоритм сжатия без потери данных, представленный в 2015 году и на 20-25% превосходящий по степени сжатия Gzip при той же скорости сжатия и распаковки. Данный алгоритм поддерживается практически всеми современными браузерами, включая достаточно старые их версии.
brotli on;
brotli_min_length 256;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml
application/xml application/xml+rss text/javascript application/atom+xml application/rdf+xml image/svg+xml;
Здесь все аналогично настройкам секции для gzip, поэтому все что было сказано выше одинаково применимо и здесь.
И, наконец, добавим поддержку наиболее современного и эффективного алгоритма сжатия zstd, который обеспечивает более высокую скорость сжатия и распаковки при таком же или более высоком уровне сжатия. Поддержка zstd присутствует во всех последних версиях браузеров и позволяет сделать работу с сайтом наиболее быстрой и эффективной:
zstd on;
zstd_min_length 256;
zstd_comp_level 3;
zstd_types text/plain text/css application/json application/javascript application/x-javascript text/xml
application/xml application/xml+rss text/javascript application/atom+xml application/rdf+xml image/svg+xml;
Но что будет, если браузер посетителя не поддерживает какой-то из указанных нами алгоритмов? Ничего страшного, потому что выбор доступного алгоритма сжатия сервером происходит на основании специального заголовка Accept-Encoding, передаваемого клиентом, в котором он указывает поддерживаемые им алгоритмы. При наличии нескольких поддерживаемых методов они применяются в следующем порядке: zstd -> brotly -> gzip.
Сохраним конфигурационный файл и проверим его синтаксис командой:
angie -t
Если ошибок не обнаружено, то перезапустим веб-сервер для применения настроек:
angie -s reload
Теперь наберем в браузере доменное имя или IP-адрес сервера и мы увидим стандартную заглушку Angie.
Теперь проверим работу алгоритмов сжатия, для этого отправим запрос с явным указанием поддерживаемого метода в заголовке, для указания методов используйте: gzip, br и zstd:
curl -I example.com -H "Accept-Encoding: br"
В ответе вы должны получить строку с указанием используемого алгоритма:
Content-Encoding: br
Также можете проверить приоритет выбора методов сжатия, указав сразу несколько доступных, например:
curl -I example.com -H "Accept-Encoding: br zstd gzip"
Если все сделано правильно, то будет выбираться наиболее эффективный алгоритм согласно указанному выше приоритету.
Все это время мы говорили о динамическом сжатии, но также можно настроить и статическое сжатие, когда веб-сервер будет отдавать заранее сжатые файлы. Это разумно сделать для редко изменяемых элементов: шрифтов, стилей, скриптов и т.п., которые можно заранее сжать с высокой степенью компрессии и тем самым значительно повысить скорость отдачи без увеличения нагрузки на оборудование.
Для этого добавьте в соответствующие секции опции:
brotli_static on;
zstd_static on;
Теперь, при запросе файла веб-сервер проверить наличие рядом с ним сжатых версий с расширениями .br или .zst. Если такой файл будет найден, то он будет отдан веб-сервером вместо несжатого оригинала. Статическое сжатие имеет приоритет перед динамическим, а алгоритм zstd также имеет приоритет над Brotli.
Как получить сжатые файлы? Для этого воспользуемся консольными версиями архиваторов, zstd обычно установлен в современных дистрибутивах по умолчанию, а для Brotli выполните:
apt install brotli
После чего для сжатия достаточно выполнить:
brotli -9 myfile
или
zstd -19 myfile
В обоих случаях указаны максимальные степени сжатия, однако на практике следует выполнить проверку и, возможно, выбрать более низкий уровень компрессии, который будет давать приемлемую степень сжатия, чтобы уменьшить нагрузку на клиентские устройства.
Создание и настройка виртуальных хостов
По умолчанию Angie хранит конфигурации виртуальных хостов в директории /etc/angie/http.d, на наш взгляд это не очень удобно и поэтому мы вернемся к приятной в среде DEB-систем схеме, когда конфигурации виртуальных узлов хранятся в отдельной директории sites-available, а для подключения на них делаются символические ссылки в директорию sites-enabled. Поэтому сразу создадим нужные директории в папке с конфигурационными файлами веб-сервера. Третьей директорией мы добавили папку для шаблонов конфигурации, куда будем выносить общие блоки настроек виртуальных хостов, например, настройки шифрования или работы с PHP-FPM.
mkdir /etc/angie/sites-available
mkdir /etc/angie/sites-enabled
mkdir /etc/angie/templates
Откроем основной конфигурационный файл /etc/angie/angie.conf и после строки:
include /etc/angie/http.d/*.conf;
Добавим:
include /etc/angie/sites-enabled/*.conf;
Теперь создадим описание виртуального хоста для нашего сайта и сразу откроем его на редактирование, мы будем использовать для этого встроенный редактор nano, если вам больше нравится встроенный редактор mc, то замените в команде nano на mcedit:
nano /etc/angie/sites-available/site.example.conf
И внесем в него следующие строки:
server {
listen 80;
server_name site.example;
charset utf-8;
root /var/www/site.example;
index index.html;
access_log /var/log/angie/site.example_access.log;
error_log /var/log/angie/site.example_error.log;
}
server {
listen 80;
server_name www.site.example;
return 301 http://site.example$request_uri;
}
В данном случае мы описываем размещение основного домена site.example и делаем на него постоянное перенаправление с www.site.example.
Затем создадим указанную в конфигурации директорию виртуального хоста и сделаем ее владельцем веб-сервер:
mkdir -p /var/www/site.example
chown -R www-data:www-data /var/www/site.example
Теперь создадим на него символическую ссылку в директорию с активными сайтами:
ln -s /etc/angie/sites-available/site.example.conf /etc/angie/sites-enabled/
Для проверки работы сразу создадим индексный файл:
echo "<body><h1>TEST PAGE</h1></body>" > /var/www/site.example/index.html
Теперь проверим синтаксис и перезапустим веб-сервер:
angie -t
angie -s reload
Если все сделано правильно, то набрав в адресной строке имя сайта мы увидим созданную нами тестовую страницу.
При необходимости вы можете создать аналогичным образом дополнительные виртуальные хосты.
Получение сертификатов Let's Encrypt и настройка HTTP/3
В Angie для получения сертификатов используется собственный ACME-клиент настройкой которого мы сейчас и займемся. В секцию http конфигурационного файла /etc/angie/angie.conf внесем следующие строки:
http {
...resolver 127.0.0.53;
acme_client example https://acme-v02.api.letsencrypt.org/directory;
Опция resolver указывает на DNS-сервер для разрешения имен, в нашем случае это локальная служба systemd-resolve, если вы ее не используете, то можете указать любой иной DNS-сервер, например, 8.8.8.8. Опция acme_client указывает имя экземпляра клиента (example) и адрес сервера Let's Encrypt с которым он будет работать. Для каждого виртуального хоста потребуется создать собственный ACME-клиент, который будет управлять сертификатами только этого хоста.
Теперь откроем файл виртуального хоста /etc/angie/sites-available/site.example.conf и добавим в него секцию:
server {
listen 443 quic reuseport;
listen 443 ssl;
http2 on;
server_name site.example www.site.example;
charset utf-8;
root /var/www/site.example;
index index.html index.php;
access_log /var/log/angie/site.example_access.log;
error_log /var/log/angie/site.example_error.log;
acme example;
ssl_certificate $acme_cert_example;
ssl_certificate_key $acme_cert_key_example;
location / {
add_header Alt-Svc 'h3=":443"; ma=86400';
}
}
Данная конфигурация включает поддержку протоколов HTTP/2 и HTTP/3, а также автоматическое получение сертификатов Let's Encrypt при помощи экземпляра ACME-клиента example. Снова проверим конфигурацию и перезапустим сервер
angie -t
angie -s reload
Теперь обратимся к сайту явно указав протокол HTTPS, если все сделано правильно, то вы увидите валидный сертификат и защищенное соединение.
Проверить работу протокола HTTP/3 можно при помощи сервиса https://http3check.net.
Защищенное соединение работает, но это только начало, для нормальной работы нам потребуется его тонкая настройка. Для этого воспользуемся сайтом moz://a SSL Configuration Generator где получим настройки для nginx. После чего создадим отдельный шаблон, чтобы не повторять данные настройки для каждого виртуального хоста:
nano /etc/angie/templates/ssl.conf
В который внесем с некоторыми правками полученное на сайте содержимое, начнем с протоколов и шифров, явно отключив небезопасные протоколы и слабые, устаревшие шифры. В нашем случае оставлена поддержка только TLS 1.2 и TLS 1.3:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
Ниже укажем путь к файлу параметров Диффи-Хеллмана:
ssl_dhparam /etc/angie/dhparam.pem;
Настройки SSL-сессии:
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
Что касается настроек OCSP Stapling, которые присутствуют в генераторе и могут быть приведены в иных инструкциях, в т.ч. наших, то их следует проигнорировать, так как Let's Encrypt полностью отключает эту технологию летом 2025 года.
Сохраняем файл шаблона и в самый конец секции server виртуального хоста добавляем:
include /etc/angie/templates/ssl.conf;
Не забываем сгенерировать файл параметров Диффи-Хеллмана (делается один раз):
openssl dhparam -out /etc/angie/dhparam.pem 2048
После чего приведем остальные секции виртуального хоста к виду:
server {
listen 80;
server_name site.example;
return 301 https://site.example$request_uri;
}
server {
listen 80;
server_name www.site.example;
return 301 https://site.example$request_uri;
}
Это обеспечит нам перенаправление всех незащищенных запросов на защищенную версию сайта. Снова проверяем конфигурацию и перезапускаем веб-сервер:
angie -t
angie -s reload
Если вам нужны сертификаты, то ACME-клиент Angie хранит их по пути:
/var/lib/angie/acme/<acme_name>
Где acme_name - имя экземпляра ACME-клиента.
Теперь вам следует внимательно проверить работу защищенной версии сайта, особенно если вы переносите готовый сайт и убедиться что у вас нигде нет незащищенного содержимого и все работает корректно. После чего следует включить технологию HSTS, которая препятствует атакам на понижение защиты. В нашем случае браузер в случае успешного соединения с сайтом по HTTPS будет в течении двух лет автоматически переходить на защищенную версию, даже если мы явно укажем в адресной строке протокол HTTP. Для этого приведите к следующему виду секцию:
location / {
add_header Alt-Svc 'h3=":443"; ma=86400';
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
}
Проверить настройки SSL можно на сайте https://www.ssllabs.com, если вы нигде не допустили ошибок, то ваш сайт должен получить оценку A+.
Таким образом мы успешно настроили веб-сервер с автоматическим получением сертификатов и поддержкой всех современных технологий.
Настройка сайта по умолчанию для блокирования несуществующих доменов
Использование TLS-шифрования имеет одну особенность: если мы обратимся к веб-серверу по IP-адресу или по доменному имени, которое указывает на веб-сервер, но не обслуживается им (или не имеет HTTPS-версии), то будет показан сайт, сертификат которого указан первым в конфигурации веб-сервера.
Такое поведение может быть нежелательным, так как позволяет раскрыть обслуживаемый сайт просто обратившись по имени или ввести пользователя в заблуждение. Поэтому настроим сайт по умолчанию, который будет блокировать все запросы к несуществующим доменам как в HTTP, так и в HTTPS версиях.
Для HTTPS нам понадобится сертификат, можно использовать любой существующий, но это позволит раскрыть реальный обслуживаемый сайт, поэтому выпустим для этих целей самоподписанный сроком на 10 лет:
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/angie/angie.key -out /etc/angie/angie.crt
Затем откроем /etc/angie/http.d/default.conf и заменим его содержимое на следующее:
server {
listen 80 default_server;
listen 443 default_server ssl;
server_name _;
ssl_certificate /etc/angie/angie.crt;
ssl_certificate_key /etc/angie/angie.key;
ssl_reject_handshake on;
return 444;
}
После чего следует перезапустить веб-сервер. Теперь он будет сбрасывать все соединения к необслуживаемым доменам или по IP-адресу.
Установка и настройка PHP-FPM
Angie является чистым веб-сервером и не умеет обрабатывать динамическое содержимое, в то время как современные сайты требуют поддержки скриптовых языков, наиболее популярный из которых PHP. Для работы с ним мы будем использовать протокол FastCGI и популярный менеджер процессов PHP-FPM. Для его установки выполним:
apt install php-fpm
PHP-FPM работает как служба и для управления ею используйте:
systemctl start|stop|restart|status php8.х-fpm
Обратите внимание, что при работе с PHP-FPM нужно указывать точную версию интерпретатора, в Debian 12 это 8.2, а в Ubuntu 24.04 - 8.3.
Для настройки откроем файл /etc/php/8.x/fpm/php.ini и приведем в нем к следующему виду опцию:
cgi.fix_pathinfo=0
Это закроет возможную уязвимость в обработке php-запросов.
Также найдем и изменим следующие параметры, отвечающие за максимальный размер передаваемого на сервер пакета данных и размера загружаемого файла. Обратите внимание, что эти значения не должны превышать аналогичное ограничение в конфигурации Angie:
post_max_size = 32M
upload_max_filesize = 32M
Сохраним изменения и перезагрузим сервис:
systemctl restart php8.х-fpm
Для расширения возможностей PHP используются модули, скажем, для работы с графикой может потребоваться модуль GD или ImageMagick, для модулей используют следующий шаблон имен пакетов: php-<имя модуля>, например:
apt install php-gd php-imagick php-mcrypt
После установка модулей необходимо также перезапустить PHP-FPM. Необходимые модули и их имена вы можете узнать из документации к используемому веб-приложению.
Теперь создадим шаблон для работы Angie с PHP-FPM:
nano /etc/angie/templates/php-fpm.conf
Внесем в него следующее содержимое:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Данная секция предписывает использовать для обработки PHP-файлов Fast-CGI шлюз через UNIX-сокет, что является наиболее производительным способом соединения.
Ниже укажем параметры кеширования для статического содержимого:
location ~* \.(gif|jpeg|jpg|png)$ {
expires 30d;
}
Указанные в данной локации типы файлов будут кешироваться на стороне браузера в течении 30 дней исключая их повторную загрузку. Указанный список является открытым, вы можете дополнить или изменить его по своему усмотрению.
Сохраним указанный файл, а в конце основной секции server конфигурационного файла /etc/angie/sites-available/site.example.conf добавим строку:
include /etc/angie/templates/php-fpm.conf;
Сохраним изменения и перезапустим веб-сервер.
Для проверки работы PHP создадим тестовый файл:
nano /var/www/site.examlpe/test.php
И внесем в него следующие строки:
<?php
phpinfo();
?>
Сохраним файл и обратимся по адресу https://site.examlpe/test.php, если все сделано правильно, то вы увидите страницу с информацией о PHP.
Данная страница содержит много информации о применяемой версии PHP и установленных плагинах, поэтому после проверки файл test.php следует обязательно удалить.
Установка MySQL / MariaDB
Сервер баз данных третий неотъемлемый компонент классического веб-сервера и один из первых по важности, так как именно в базе данных хранится основная пользовательская информация сайта. В современных версиях Debian и Ubuntu используются разные варианты СУБД: MariaDB и MySQL, которые являются совместимыми и принципиально разницы какую из них использовать нет, тем более что в репозиториях содержатся последние LTS-версии обоих СУБД.
Для Debian безальтернативно используется MariaDB и ее можно установить командой:
apt install mariadb-server
В Ubuntu мы можем выбирать между МariaDB и MySQL, для установки последнего используйте команду:
apt install mysql-server
Вне зависимости от того, какой именно сервер вы поставили, для дальнейшего управления службой можете использовать один и тот же набор команд:
systemctl start|stop|restart|status mysql
После установки сервера СУБД запустите специальный скрипт для установки рекомендуемых мер безопасности:
mysql_secure_installation
В результате его выполнения вам будет задано несколько вопросов, на которые отвечаем положительно, а также предложено будет выбрать сложность пароля.
Установим модуль для работы с PHP:
apt install php-mysql
Для повседневной работы с СУБД крайне не рекомендуется использовать учетную запись суперпользователя, поэтому заведем отдельных пользователей. В идеале для каждого виртуального хоста следует завести своего пользователя, т.к. учетные данные часто хранятся в настройках веб-приложений открытым текстом и компрометация веб-приложения может привести к компрометации всего сервера.
Перейдем в командную строку MySQL с правами суперпользователя:
mysql -u root
Создадим нового пользователя и разрешим ему вход по паролю:
CREATE USER 'example'@'localhost' IDENTIFIED BY 'Pa$$word_1';
В данном случае мы создали пользователя example с паролем Pa$$word_1.
Отберем у него права на чужие базы:
GRANT USAGE ON *.* TO 'example'@'localhost';
И выдадим полные права на базы шаблоном имени example_<имя базы>, что позволит автоматически устанавливать права просто создав базу с нужным именем.
GRANT ALL PRIVILEGES ON `example\_%`.* TO 'example'@'localhost';
Обратите внимание, что шаблон оборачивается символами грависа (`), который находится на клавише с русской буквой Ё.
Перезагрузим привилегии:
FLUSH PRIVILEGES;
И выйдем из консоли MySQL:
QUIT;
На этом настройка сервера СУБД закончена.
Установка phpMyAdmin
phpMyAdmin - удобное веб-приложение для управления серверами баз данных MySQL или MariaDB, ставший стандартом де-факто и мы не видим причин отказываться от его использования. Тем более что его установка предельно проста:
apt install phpmyadmin
После установки создадим еще один шаблон для Angie:
nano /etc/angie/templates/phpmyadmin.conf
И внесем в него следующий текст:
location /phpmyadmin {
root /usr/share/;
index index.php;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
Сохраним шаблон и добавим в конец основной секции server конфигурации виртуального хоста строку:
include /etc/angie/templates/phpmyadmin.conf;
Обратите внимание, что не нужно добавлять этот шаблон для всех виртуальных хостов, достаточно подключить к одному, основному. Доступные для управления базы зависят исключительно от прав пользователя, а не виртуального хоста к которому подключен phpMyAdmin.
Перезапустим веб-сервер и наберем в адресной строке https://site.examlpe/phpmyadmin, для входа используйте учетные данные пользователя созданного нами на этапе установки SQL-сервера, в нашем случае это example. В результате у вас откроется веб-интерфейс утилиты с правами только на базы указанного пользователя.
На этом настройка веб-сервера Angie с сертификатами Let's Encrypt и поддержкой HTTP/3 закончена. В нашем распоряжении быстрый и современный сервер с поддержкой всех актуальных технологий.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии