Я использую Apache со следующей конфигурацией:
Тайм-аут 60
KeepAlive включен
MaxKeepAliveRequests 100
<Соответствие файлов \.php$>
SetHandler "прокси:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
HostnameLookups Off
<Каталог />
Параметры
Аллововеррайд
Требовать все отказано
</Каталог>
<Каталог /usr/share>
Аллововеррайд
Требовать все предоставленные
</Каталог>
<Каталог /var/www/>
Индексы опционов FollowSymLinks
Аллововеррайд
Требовать все предоставленные
</Каталог>
<Каталог /var/www/html/>
Опции +FollowSymlinks
Разрешить переопределить все
</Каталог>
<IfModule mod_expires.c>
ExpiresActive On
FileETag Нет
ExpiresByType text/javascript "доступ плюс 1 месяц"
ExpiresByType text/x-javascript "доступ плюс 1 месяц"
Приложение ExpiresByType/javascript "доступ плюс 1 месяц"
ExpiresByType text/html "доступ плюс 1 месяц"
</ЕслиМодуль>
<IfModule worker.c>
Стартовые серверы 2
Максимальное количество клиентов 50
Минспаретредс 1
Максспаретредс 2
ThreadsPerChild 15
MaxRequestsPerChild 0
</ЕслиМодуль>
<IfModule prefork.c>
Стартовые серверы 2
Минимальные запасные серверы 1
Максспаресерверс 2
Максимальное количество клиентов 60
MaxRequestsPerChild 1000
</ЕслиМодуль>
Тогда это мой external.conf (где будет шифроваться трафик от лака):
<VirtualHost *:443>
Protocols h2 http/1.1
ServerName cloud.privacyy.ch
ErrorLog /var/log/apache2/external-https_error.log
CustomLog /var/log/apache2/external-https_access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/cloud.privacyy.ch/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cloud.privacyy.ch/privkey.pem
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
#RewriteRule ^/\.aurora https://cloud.privacyy.ch/aurora-staefa.ch/ [R=301,L]
</IfModule>
Header set Cache-Control "max-age=84600, private"
<FilesMatch "\.(js|css|php)$">
Header set Cache-Control "max-age=63072000, private"
</FilesMatch>
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Content-Security-Policy "allow 'self';"
Header always set x-xss-protection "1; mode=block"
Header always set X-Robots-Tag "none"
Header always set X-Download-Options "noopen"
Header always set X-Permitted-Cross-Domain-Policies "none"
Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
SSLCompression off
</VirtualHost>
Это внутренний .conf:
<VirtualHost *:8181>
protocols h2 http/1.1
DocumentRoot /var/www/html
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
Header set Cache-Control "max-age=84600, public"
<FilesMatch "\.(iso|mp3|mp4|m4a|mov)$">
Header set Cache-Control "max-age=42300, private"
</FilesMatch>
</VirtualHost>
Обратите внимание, что я не включил здесь комментарии или настройки журнала.
Когда я загружаю что-либо с помощью веб-браузера, сервер apache использует все больше и больше оперативной памяти (и использует весь своп размером 12,3 ГБ, даже если я не загружаю файл размером 12,3 ГБ), и скорость загрузки снижается. То же самое происходит при использовании приложений Nextcloud (настольных/телефонных).
Первоначальная скорость загрузки была 10 МБ/с.
Я включил следующие моды apache:
access_compat псевдоним auth_basic authn_core authn_file authz_core authz_host authz_user autoindex deflate dir env expires fcgid filter headers http2 mime mpm_event согласование pagespeed proxy proxy_balancer proxy_fcgi proxy_http reqtimeout rewrite setenvif slotmem_shm socache_shmcb статус ssl unique_id
Я использую базу данных maria (недавно переключился, но мало что сделал)
Nextcloud использует redis-сервер в качестве кэша php, и я включил opcache с рекомендуемыми настройками nextcloud. Я отключил это уже для проверки, но это не решило проблему.
Доступность
1.8.0
Воргестеллт
Активность
2.15.0
Воргестеллт
Настройки грубой силы
2.2.0
Воргестеллт
Календарь
2.3.4
Воргестеллт
Превью камеры в формате RAW
0.7.12
Контрольная сумма
1.1.2
Круги
22.1.1
Воргестеллт
Совместные теги
1.12.0
Воргестеллт
Комментарии
1.12.0
Воргестеллт
Контакты
4.0.3
Воргестеллт
Контакты Взаимодействие
1.3.0
Воргестеллт
Щиток приборов
7.2.0
Воргестеллт
Модуль шифрования по умолчанию
2.10.0
Воргестеллт
Удаленные файлы
1.12.0
Воргестеллт
Сквозное шифрование
1.7.1
Воргестеллт
Федерация
1.12.0
Воргестеллт
Обмен файлами
1.14.0
Воргестеллт
Групповые папки
10.0.0
Воргестеллт
Читатель журнала
2.7.0
Воргестеллт
Почта
1.10.5
Воргестеллт
Карты
0.1.9
Воргестеллт
Метаданные
0.14.0
Мониторинг
1.12.0
Воргестеллт
Объявления Nextcloud
1.11.0
Воргестеллт
Примечания
4.1.1
Воргестеллт
Уведомления
2.10.1
Воргестеллт
Политика паролей
1.12.0
Воргестеллт
просмотрщик PDF
2.3.0
Воргестеллт
Фотографии
1.4.0
Воргестеллт
Конфиденциальность
1.6.0
Воргестеллт
Предупреждение о квоте
1.11.0
Распознавать
1.6.10
Постановка на учет
1.3.0
Щелкните правой кнопкой мыши
1.1.0
Воргестеллт
Поделиться по почте
1.12.0
Воргестеллт
Поддерживать
1.5.0
Воргестеллт
Разговаривать
12.1.2
Воргестеллт
Текст
3.3.0
Воргестеллт
Тематика
1.13.0
Воргестеллт
Двухфакторная электронная почта
2.1.1
Уведомление об обновлении
1.12.0
Воргестеллт
Опрос использования
1.10.0
Воргестеллт
Статус пользователь
1.2.0
Воргестеллт
Версии
1.15.0
Воргестеллт
Видео конвертер
1.0.3
Видео-плеер
1.11.0
Воргестеллт
Состояние погоды
1.2.0
Воргестеллт
(vorgestellt означает рекомендуемый)
Только apache использует столько оперативной памяти - все остальное в порядке
Также вещи не удаляются из ОЗУ (и подкачки), пока я не перезагружу/не перезапущу сервер apache.
При загрузке из браузера загрузка просто останавливается на 383 МБ, и браузер не говорит, насколько велик файл для загрузки (у Onedrive тоже есть эта проблема со скоростью загрузки менее 1 МБ / с в больших папках, это как: неизвестное оставшееся время - сколько уже скачано - скорость скачивания)
Что я неправильно настроил? Или что-то еще?
Мой сервер Apple MacBook Air 4 ГБ ОЗУ 2 ГГц - 2,2 ГГц (ускорение) Многопоточный 2-ядерный процессор Intel, ядро xanmod
Если чего-то не хватает, сообщите мне
Одна вещь: Earlyoom убивает сервер apache, если нет свободной оперативной памяти
Еще одна вещь: я на Ubuntu 21.04 без x-сервера и использования 400 МБ ОЗУ, если ничего не происходит