В каталоге `mods-available/` хранятся все доступные модули для веб-сервера Apache2. Модули (modules) - это расширения, которые добавляют дополнительные функции и возможности в веб-сервер Apache2. Вот некоторые из наиболее распространенных модулей и их назначение:
### Основные модули Apache2
1. **mod_alias**
- Назначение: Позволяет управлять URL-адресами, создавая псевдонимы (алиасы) для файлов и директорий.
- Пример:
```apache
Alias /images /var/www/images
```
2. **mod_auth_basic**
- Назначение: Предоставляет базовую HTTP-аутентификацию.
- Пример:
```apache
<Directory "/var/www/html">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
```
3. **mod_ssl**
- Назначение: Обеспечивает поддержку SSL/TLS для защищенных соединений HTTPS.
- Пример:
```apache
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
</VirtualHost>
```
4. **mod_rewrite**
- Назначение: Позволяет изменять URL-адреса запросов с помощью правил переписывания.
- Пример:
```apache
RewriteEngine On
RewriteRule ^/oldpath(.*)$ /newpath$1 [R=301,L]
```
5. **mod_headers**
- Назначение: Позволяет добавлять, изменять или удалять HTTP-заголовки.
- Пример:
```apache
Header set X-Frame-Options "DENY"
```
6. **mod_proxy**
- Назначение: Позволяет использовать Apache в качестве прокси-сервера.
- Пример:
```apache
<VirtualHost *:80>
ProxyPass /app http://localhost:8080/app
ProxyPassReverse /app http://localhost:8080/app
</VirtualHost>
```
7. **mod_deflate**
- Назначение: Сжимает содержимое ответа с использованием gzip для уменьшения объема передаваемых данных.
- Пример:
```apache
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml
</IfModule>
```
### Дополнительные модули
1. **mod_cache**
- Назначение: Обеспечивает кеширование контента для улучшения производительности.
- Пример:
```apache
CacheEnable disk /
CacheRoot "/var/cache/apache2"
```
2. **mod_security**
- Назначение: Предоставляет функции для улучшения безопасности веб-приложений, включая WAF (Web Application Firewall).
- Пример:
```apache
<IfModule mod_security2.c>
SecRuleEngine On
</IfModule>
```
3. **mod_autoindex**
- Назначение: Автоматически создает индексный список файлов в каталоге.
- Пример:
```apache
<Directory "/var/www/html">
Options Indexes
</Directory>
```
### Управление модулями
Для активации и деактивации модулей используются утилиты `a2enmod` и `a2dismod`:
- **Активировать модуль**:
```sh
sudo a2enmod rewrite
```
- **Деактивировать модуль**:
```sh
sudo a2dismod rewrite
```
После активации или деактивации модуля нужно перезапустить Apache2 для применения изменений:
```sh
sudo systemctl restart apache2
```
Эти модули расширяют функциональные возможности Apache2, позволяя адаптировать веб-сервер под различные нужды и требования.