Nginx место на диске

Nginx место на диске Хостинг

VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.

На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.


Nginx место на диске

Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории (apt install nginx). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.

При работе с VPS можно столкнуться с проблемой нехватки места на сервере. Перед тем как приступить к её решению, проверьте, сколько дискового пространства файловой системы занято. Это можно сделать с помощью команды df -h*. В выводе вы увидите примерно следующее:

Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 45G 10G 33G 23% /

Чтобы точно определить, сколько дискового пространства занято, добавьте 4-5% к данным в графе Used. Это пространство выделено под технические области файловой системы: журналы, структуры директорий, данные о размещении файлов на диске и другие. В примере занято 10 ГБ. К ним нужно добавить ещё 0.4-0.5 ГБ.

Ниже рассмотрим распространенные причины заполнения дискового пространства сервера и способы решения данной проблемы.

I have just setup a ubuntu 12.04.2 LTS server that serves a big number of quite large static files. The configuration is the same as on another machine which works great. The other machine uses Ubuntu 11.10 with nginx 1.0.5 . The machine with the problem uses nginx 1.1.19 and it can hardly push around 20MB/s (but is on a 1Gbit dedicated line) with the iotop showing high disk IO by nginx. This is from iotop:

So for some reason those processes that try to shutdown cause the IO and the server goes in a almost non-responsive state, with the load growing as high as 5-6 (this is a dual core machine). The CPU utilisation meanwhile is aroun 0.5%

After restarting nginx everything is fine for some time and then this happens again.

This is the latest from the error log of nginx:

and then this happens:

and this is the nginx.conf:

Any help will be highly appreciated!

Sendfile on and off makes no difference.

worker_rlimit_nofile == worker_connections makes no difference.

worker_processes changes nothing also.

smartctl shows no problems with the disk, however I tried with the second disk on this machine and still no difference.

Управление сервером

Какие вопросы чаще всего возникают у пользователей при управлении Linux-сервером? Какие инструменты можно порекомендовать даже не очень опытным администраторам?

Читайте также:  Демистификация синтаксиса триггеров в MySQL: подробное руководство для начинающих

Установка супервизора

Supervisor — это система клиент/сервер, при помощи которой администратор контролирует процессы на сервере. Инструмент создает процессы в виде подпроцессов от своего имени.

Установка supervisord в Debian или Ubuntu предельно простая:

apt-get install supervisor

После этого демон супервизора уже запущен и будет запускаться при каждой загрузке системы.

Новые программы передаются в супервизор через конфигурационные файлы в директории /etc/supervisor/conf.d. Например, для скрипта long.sh конфигурационный файл может выглядеть следующим образом:

Соответственно, скрипт будет автоматически запускаться при каждой загрузке системы и автоматически перезапускаться в случае выхода. Это значение может быть ‘false’ (не перезапускаться) или ‘unexpected’ (перезапускаться только в случае выхода с неожиданным кодом ошибки, по умолчанию, с любым кодом, кроме 0 или 2).

Две последние строчки — адреса журналов. Это минимальный шаблон конфигурации для программы в супервизоре.

После создания файла конфигурации для конкретной программы запускаем две команды, чтобы супервизор перечитал и применил новые конфигурации:

На этом этапе наша программа или скрипт уже должны запуститься, что можно проверить по логам.

В утилите supervisorctl есть интерактивный режим, в котором она запускается без аргументов:

В этом режиме supervisorctl изначально выводит статус и время работы всех программ под управлением супервизора, а потом свю командную строку. Там можно ввести help — и увидеть список доступных команд:

Как видим, можно запускать, останавливать и перезапускать программы из командной строки с помощью команд start, stop и restart.

Выход из супервизорпа осуществляется по Ctrl-C или командой quit:

Анализ свободного места на диске

Стандартная утилита для просмотра информации о смонтированных разделах — это df. Она выводит список подключенных устройств и информацию о занятом месте.

df опции устройство

Параметр -h активирует режим читаемого человеком вывода (то есть в мегабайтах или гигабайтах):

Информация о конкретной директории (например, /home):

df -h /home

Информация о разделах с заданной файловой системой:

df -h -t ext4

Поиск файлов командой find

Поиск по названию файла:

find -name «query»

Поиск по названию без учёта регистра:

find -iname «query»

«Обратный» поиск файлов, которые не соответствуют указанному шаблону:

find -not -name «query_to_avoid»

find ! -name «query_to_avoid»

Поиск по типу файла

find -type дескриптор_типа запрос

Некоторые из распространённых дескрипторов::

Например, следующая команда выведет все устройства посимвольного ввода-вывода, установленные в системе:

find / -type c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .

Есть фильтр по размеру и времени доступа/изменения. Например, вот команда для поиска всех файлов менее 50 байт:

find / -size -50c

Поиск всех файлов более 700 мегабайт:

find / -size +700M

Для поиска по времени доступа, модификации или изменения метаинформации файла используются параметры ‘-atime’, ‘-mtime’ и ‘-ctime’ с символами плюса и минуса для указания диапазона больше и меньше указанного, соответственно.

Поиск файлов, которые были модифицированы менее суток назад:

find / -mtime -1

Файлы с временем доступа более трёх суток назад:

find / -atime +3

Файлы, которые изменялись за последнюю минуту:

find / -mmin -1

Файлы, которые новее указанного файла:

Читайте также:  50px!important}}if(typeof ez_ad_units!='undefined'){ez_ad_units.push([[320,50],'router_reset_com-medrectangle-3','ezslot_7',147,'0','1'])};__ez_fad_position('div-gpt-ad-router_reset_com-medrectangle-3-0_1');.medrectangle-3-multi-147{border

find / -newer myfile

Тестирование TCP и UDP-соединений

В комплекте Linux идёт большое количество полезных утилит. Некоторые системные администраторы способны выполнять большинство задач, пользуясь только встроенным инструментарием, без установки дополнительных программ. Настоящий швейцарский нож среди встроенных инструментов Linux — сетевая утилита netcat. Общий синтаксис:

Эта команда инициирует TCP-соединение на заданный хост по указанному порту. Если вместо TCP нужно протестировать UDP-соединение, то указываем опцию -u:

netcat -u host port

netcat host startport-endport

В большинстве систем можно писать как netcat, так и nc.

Сканирование портов

Одно из типичных применений netcat — сканирование портов, опция -z означает сканирование вместо установления соединения. Используем её вместе с опцией -v для выдачи более детальной информации при сканировании портов с 1 до 1000:

netcat -z -v domain.com 1-1000

Выдача будет выглядеть примерно так:

Впрочем, для этой задачи имеется более продвинутая, специализированная программа nmap. Устанавливаем её:

apt-get update
apt-get install nmap

Не рекомендуется запускать сканирование портов чужого сервера, поскольку администратор системы может принять такие действия за враждебные. Nmap предназначен для исследования своего собственного сервера, а поэкспериментировать можно на специально предназначенном для тестовых целей сервере scanme.nmap.org.

Некоторые команды требует длительного времени для выполнения.

Сканирование операционной системы на хосте:

nmap -O хост

Сканирование диапазона хостов от xxx.xxx.xxx.xxx до yyy.yyy.yyy.yyy:

nmap -PN xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy

Сканирование сетевого диапазона с поиском доступных сервисов:

nmap -sP диапазон_адресов

Сканирование конкретного порта:

nmap -p номер_порта хост

Сканирование всех открытых портов TCP и UDP:

nmap -n -PN -sT -sU -p- хост

Изучение версий ПО, работающего на хосте:

nmap -PN -p номер_порта хост

Есть много других команд, параметров и вариантов использования nmap. Сканирование портов своего VDS-сервера позволяет определить потенциальные векторы атак и уязвимости, поскольку злоумышленник начнёт свои действия именно со сканирования.

Пересылка сообщений и файлов

С помощью ключа -l можно поставить на прослушивание конкретный порт на сервере:

netcat -l 5438

На другой машине мы указываем подключиться к машине по данному порту:

netcat domain.com 5438

Теперь между двумя системами установлен канал связи. По нему можно передавать текстовые сообщения.

Таким способом можно даже передать файл. Для этого команду прослушивания направляем сразу в файл:

На другом компьютере вместо текстового сообщения подаём на вход оригинальный файл:

netcat domain.com 5438 < оригинальный_файл

Аналогично можно передавать самые разные вещи, например, содержимое директорий, заархивированное на лету в tarball:

Таким же способом можно на одной стороне создать образ диска (dd), отправить его в указанный порт по созданному TCP-соединению — и принять на другой системе.

Добавление и удаление пользователей

Для добавления, удаления пользователей и выдачи им привилегий sudo нужно для начала подключиться к серверу как root:

После этого добавляем пользователя:

Изначально у него нет никаких привилегий. Но если это основной пользователь системы, то мы можем назначить ему административные привилегии, чтобы он мог выполнять рутинные задачи по обслуживанию и поддержке сервера.

Для назначения административных привилегий нужно добавить пользователя в группу sudo. Пользователям из этой группы разрешено запускать команду sudo с повышением своих привилегий до административных.

Читайте также:  Требования к домену и рекомендации по выбору доменов

Имея такие права, этот пользователь может удалять других пользователей:

Опция —remove-home удаляет также и домашнюю директорию пользователя.

Конечно, здесь далеко не полный список полезных инструментов для управления VDS-сервером. Но эти вопросы часто возникают у начинающих системных администраторов, которые подняли свой первый сервер, поставили ОС и начинают разбираться в мире Linux-администрирования.


Nginx место на диске

Как узнать, какие файлы занимают больше всего места на сервере

Узнать объём директорий и файлов в корне сервера можно при помощи команды du -sch /*. Если начать с корня сервера и проверять те директории, которые занимают больший объем, то в итоге можно найти самые большие файлы. Вместо / можно указать любую другую директорию, чтобы узнать информацию о её содержимом. Пример:

Подключитесь к серверу по SSH и введите следующую команду:

Вместо /path/ укажите путь к директории, файлы и папки которой вы хотите проанализировать. В результатах вывода вы увидите примерно следующее:

-bash-4.1# du -sch /var/log/nginx/*
657M /var/log/nginx/access.log
4.0K /var/log/nginx/access.log-20130929.gz
4.0K /var/log/nginx/access.log-20130930.gz
8.0K /var/log/nginx/access.log-20131001
120M /var/log/nginx/error.log
4.0K /var/log/nginx/error.log-20130929.gz
4.0K /var/log/nginx/error.log-20130930
24K total

В примере больше всего места в директории /var/log/nginx/ занимает файл access.log (полный путь /var/log/nginx/access.log). Чтобы удалить часть информации из файла, используйте команду:

В результате всё содержимое в файле будет заменено пустой строкой.

Если на сервере установлена система мониторинга atop, проверьте директорию /var/log/atop/ командой:

du -sch /var/log/atop/*

В ISPManager частой причиной нехватки дискового пространства является директория /var/www/httpd-logs/, в которой хранятся логи ошибок и запросов к сайтам. Проверьте размер командой:

du -sch /var/www/httpd-logs/*

Не происходит ротация логов

Как следствие, файлы журналов разрастаются до больших размеров. Для устранения проблемы:

Другие программы не очищают свои временные файлы в каталоге /tmp

Для решения этой проблемы проанализируйте содержимое каталога /tmp. Возможно, другие программы не удаляют свои временные данные и занимают дисковое пространство.

Закажите услугу «Сервер для бизнеса»

Сосредоточьтесь на вашем бизнесе, о хостинге позаботится REG. RU! Закажите мощный облачный сервер с круглосуточным администрированием.

Заказать «Сервер для бизнеса»

Базовые команды по управлению Nginx

Примечание. Если пользователь не имеет рутовых прав, то для выполнения каждой команды он должен получить рутовые привилегии с помощью команды sudo.

sudo systemctl stop nginx

В случае запуска от имени root, команда такая:

Запуск после остановки:

systemctl start nginx

Остановка и повторный запуск (перезапуск):

systemctl restart nginx

Если вы просто внесли некие изменения в конфигурацию, Nginx может перегрузиться без потери текущих соединений. Это делается следующей командой:

systemctl reload nginx

По умолчанию, Nginx сконфигурирован на автоматический запуск при загрузке сервера. Такое поведение можно изменить следующей командой:

systemctl disable nginx

Снова включить автозапуск Nginx при загрузке сервера:

systemctl enable nginx

Это делается следующими командами.

Сначала создаём нужную директорию на сервере.

mkdir -p /var/www/your_domain/html

Размещаем в указанной директории главную страничку index.html.

Потом нужно создать соответствующий набор правил для Nginx. В любом текстовом редакторе создаём файл /etc/nginx/sites-available/your_domain и копируем туда конфигурацию из файла по умолчанию, только с изменённым адресом и доменом:

В конце концов, активируем эту конфигурацию, прописав симлинк к новому конфигурационному файлу в директории sites-enabled, которую Nginx считывает при загрузке:

ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

После перезагрузки Nginx будет выдавать соответствующую страницу на запросы your_domain и www.your_domain.

Оцените статью
Хостинги