DevOps | Вопросы собесов
前往频道在 Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+2P7cpjeyfDVlZjcy Вакансии t.me/+i5KFWEWJ21hhYWEy
显示更多5 498
订阅者
-724 小时
-127 天
-1630 天
帖子存档
🤔 Как отменить последний коммит?
🚩Методы
🟠Отмена последнего коммита с сохранением изменений
Команда git reset с параметром --soft отменяет последний коммит, но оставляет изменения в индексе (staging area), что позволяет вам внести изменения и закоммитить их снова.
HEAD~1: указывает на один коммит назад от текущего HEAD. --soft: сохраняет изменения в индексе.
git reset --soft HEAD~1
🟠Отмена последнего коммита с сохранением изменений в рабочей директории
Команда git reset с параметром --mixed отменяет последний коммит и сбрасывает индекс, но сохраняет изменения в рабочей директории. Это позволяет вам внести изменения и добавить их в индекс заново. --mixed: сбрасывает индекс, но сохраняет изменения в рабочей директории (по умолчанию).
git reset --mixed HEAD~1
🟠Отмена последнего коммита и изменений
Команда git reset с параметром --hard отменяет последний коммит и удаляет все изменения как из индекса, так и из рабочей директории. Это действие необратимо и должно использоваться с осторожностью. `--hard`: сбрасывает индекс и рабочую директорию.
git reset --hard HEAD~1
🟠Отмена последнего коммита с помощью `git revert`
Команда git revert создает новый коммит, который отменяет изменения, внесенные последним коммитом. Это сохраняет историю изменений и является более безопасным способом отмены коммита, особенно в публичных ветках. `HEAD`: указывает на последний коммит.
git revert HEAD
🚩Примеры использования
🟠Отмена последнего коммита с сохранением изменений в индексе
git reset --soft HEAD~1
Проверка состояния:
git status
🟠Отмена последнего коммита с сохранением изменений в рабочей директории
git reset --mixed HEAD~1
Проверка состояния
git status
Ставь 👍 и забирай 📚 Базу знанийБесплатное IT-образование в 2024
Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления
Выбирайте нужное и подписывайтесь:
👩💻 Python: @PythonPortal
📱 GitHub: @git_developer
👩💻 Frontend: @FrontendPortal
🤓 Книги айти: @portalToIT
👩💻 Java: @Java_Iibrary
👩💻 C#: @KodBlog
👩💻 С/С++: @Cpportal
⚙️ Backend: @BackendPortal
🐞 Тестирование: @QAPortal
👩💻 DevOps: @loose_code
🖥 Базы Данных & SQL: @SQL
👩💻 Golang: @juniorGolang
👩💻 PHP: @PHPortal
👩💻 Моб. разработка: @MobDev
👩💻 Разработка игр: @GameDevgx
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign
➡️ Сохраняйте себе, чтобы не потерять
🤔 По какой причине inode могут закончиться?
Inode могут закончиться на файловой системе, если создается большое количество мелких файлов. Каждый файл в UNIX-подобных системах использует inode для хранения метаданных. Если файловая система имеет ограниченное количество inode, и все они используются, новые файлы создать будет невозможно, даже если на диске еще есть свободное пространство.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Скидка 15% на корпоративное такси. Яндекс Go для бизнеса
Скидка 15% на первые три месяца.
Возврат НДС до 20% на все рабочие поездки. Контроль маршрутов и расходов в одном кабинете.
Быстрая подача авто от 5 минут. Удобное онлайн-подключение без визита в офис.
Узнать больше
#реклама
business.go.yandex
О рекламодателе
🤔 Что такое cherry pick?
Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки.
🚩Когда используется
🟠Применение отдельных изменений
Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки.
🟠Быстрое исправление ошибок
Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза.
🟠Избежание сложного слияния
Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям,
cherry-pick позволяет аккуратно перенести только нужные коммиты.
🚩Примеры использования
🟠Простого `cherry-pick`
Перенос одного коммита из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick коммита
git cherry-pick <commit-hash>
🟠Применения нескольких коммитов
Перенос нескольких коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick нескольких коммитов
git cherry-pick <commit-hash-1> <commit-hash-2> <commit-hash-3>
🟠Применения диапазона коммитов
Перенос диапазона коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch
# Выполните cherry-pick диапазона коммитов
git cherry-pick <start-commit-hash>..<end-commit-hash>
🚩Разрешение конфликтов
1⃣Разрешите конфликты в файлах.
2⃣Добавьте изменения в индекс
git add <filename>
3⃣Завершите процесс cherry-pick
git cherry-pick --continue
🚩Прерывание
Если вы хотите прервать процесс cherry-pick, можно использовать команду
git cherry-pick --abort
Ставь 👍 и забирай 📚 Базу знаний🤔 В чём разница между TCP и UDP?
TCP (Transmission Control Protocol) — это протокол с установлением соединения, обеспечивающий надежную, упорядоченную и безошибочную передачу данных. UDP (User Datagram Protocol) — это более простой протокол без установления соединения, который позволяет передавать данные без гарантий доставки, порядка или проверки ошибок. TCP используется для задач, где важна надежность, а UDP — для задач, требующих максимальной скорости передачи.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Timetta — контроль проектов, ресурсов, финансов и задач
Комплексное решение для проектно-ориентированного бизнеса.
Приложение для контроля проектов, финансов, ресурсов, времени для средних и крупных команд.
✅Планируйте проекты
✅Оценивайте бюджеты
✅Подбирайте ресурсы
✅Контролируйте задачи
Узнать больше
#реклама 16+
timetta.com
О рекламодателе
🤔 Как открывается смотреть огромный лог размером 4-5 Гб?
Работа с большими логами может быть сложной, так как стандартные текстовые редакторы и команды могут не справляться с такими объемами данных.
🟠Использование команды `less`
Это команда для постраничного просмотра файлов, которая загружает файл по частям, что позволяет работать с большими файлами без их полного открытия в памяти. Навигация:
Space: следующая страница
b: предыдущая страница
G: перейти в конец файла
g: перейти в начало файла
/pattern: поиск по файлу
less /path/to/large-log-file.log
🟠Использование команды tail
Это команда для просмотра последних строк файла. Она полезна для мониторинга новых записей в реальном времени.
tail -n 1000 /path/to/large-log-file.log
Для непрерывного мониторинга
tail -f /path/to/large-log-file.log
🟠Использование команды `head`
Это команда для просмотра первых строк файла.
head -n 1000 /path/to/large-log-file.log
🟠Использование команды `awk`
Это мощный текстовый процессор, который может быть использован для фильтрации и обработки лог-файлов.
awk '/ERROR/' /path/to/large-log-file.log
🟠Использование команды tail
Это команда для поиска по файлу. Она позволяет быстро находить строки, содержащие определенные паттерны.
grep "ERROR" /path/to/large-log-file.log
Для просмотра строк до и после найденного паттерна
grep -C 5 "ERROR" /path/to/large-log-file.log
🟠Использование команды `split`
Это команда для разбиения больших файлов на более мелкие части. Разбиение файла на части размером по 500 МБ
split -b 500M /path/to/large-log-file.log part_
🟠Использование `Sublime Text` или других редакторов с поддержкой больших файлов
Некоторые текстовые редакторы, такие как Sublime Text, поддерживают работу с большими файлами. Они могут быть полезны для просмотра и редактирования логов.
🟠Использование специализированных утилит
GoAccess: интерактивный просмотр логов веб-сервера в режиме реального времени.
goaccess /path/to/access.log -c
lnav: интерактивный просмотрщик логов, который автоматически определяет формат логов и предоставляет удобную навигацию и поиск.
lnav /path/to/large-log-file.log
🚩Примеры использования
Использование less для просмотра большого лог-файла
less /path/to/large-log-file.log
Использование grep для поиска по логу
grep "ERROR" /path/to/large-log-file.log
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое и нужен ли swap?
Swap (файл подкачки) — это область на жестком диске, используемая операционной системой для временного хранения данных из оперативной памяти (RAM), когда она заполнена. Swap может помочь системе справляться с перегрузкой памяти, но использование swap может замедлить работу системы, так как доступ к данным на жестком диске медленнее, чем к RAM.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как и где посмотреть логи какого-нибудь сервиса?
Обычно хранятся в каталоге
/var/log. Также многие современные дистрибутивы используют систему журналирования systemd для управления и просмотра логов.
🚩Способы просмотра
🟠Просмотр логов в /var/log
Каталог /var/log содержит логи большинства системных сервисов и приложений.
Логи системных сообщений
/var/log/syslog: Содержит общие системные логи. /var/log/messages: Содержит общие системные сообщения (не во всех дистрибутивах).
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog
Логи конкретных сервисов
Apache: /var/log/apache2/ или /var/log/httpd/ Логи доступа: /var/log/apache2/access.log или /var/log/httpd/access_log Логи ошибок: /var/log/apache2/error.log или /var/log/httpd/error_log
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
Nginx: /var/log/nginx/ Логи доступа: /var/log/nginx/access.log Логи ошибок: /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
MySQL: /var/log/mysql/ или /var/log/mysqld.log
tail -f /var/log/mysql/error.log
SSH: /var/log/auth.log или /var/log/secure
tail -f /var/log/auth.log
🟠Использование `journalctl` для системных логов
journalctl — это утилита для просмотра и управления журналами systemd. Она позволяет фильтровать логи по различным критериям, таким как время, сервис и уровень логирования.
Основные команды journalctl
Просмотр всех журналов
journalctl
Логов конкретного сервиса
journalctl -u nginx.service
Последних логов и продолжение просмотра в реальном времени
journalctl -f
journalctl -u nginx.service -f
Логов за определённый период
journalctl --since "2024-07-25 12:00:00" --until "2024-07-25 13:00:00"
Логов с определённым уровнем логирования
journalctl -p err
journalctl -p warning
🚩Примеры использования
🟠Просмотр логов Apache
Логи доступа
tail -f /var/log/apache2/access.log
Логи ошибок
tail -f /var/log/apache2/error.log
🟠Просмотр логов Nginx
Логи доступа
tail -f /var/log/nginx/access.log
Логи ошибок
tail -f /var/log/nginx/error.log
🟠Использование `journalctl` для просмотра логов Nginx
Все логи Nginx
journalctl -u nginx.service
Последние логи Nginx в реальном времени
journalctl -u nginx.service -f
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое ELK?
ELK стек — это сочетание трех открытых инструментов Elasticsearch, Logstash и Kibana, которые вместе используются для индексации, анализа и визуализации логов в реальном времени. Elasticsearch используется как поисковая и аналитическая движущая сила, Logstash — для обработки и передачи данных, а Kibana — для визуализации данных из Elasticsearch.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как поднять лимиты nginx?
Можно увеличить несколько лимитов, связанных как с самой конфигурацией Nginx, так и с настройками операционной системы.
🚩Шаги
🟠Увеличение лимита открытых файлов
1⃣Проверка текущих лимитов
ulimit -n
2⃣Увеличение лимитов для пользователя
* soft nofile 65536
* hard nofile 65536
3⃣Применение изменений
Перезапустите терминал или перезагрузите систему, чтобы изменения вступили в силу.
4⃣ Установка лимитов для процессов Nginx
LimitNOFILE=65536
sudo systemctl daemon-reload
🟠Настройка параметров Nginx
1⃣Редактирование основного конфигурационного файла Nginx
Откройте файл конфигурации Nginx (обычно /etc/nginx/nginx.conf) и настройте следующие параметры:
worker_rlimit_nofile: Установите максимальное количество открытых файлов.
worker_rlimit_nofile 65536;
worker_connections: Увеличьте количество соединений, которые каждый рабочий процесс может обрабатывать одновременно.
events {
worker_connections 65536;
}
worker_processes: Настройте количество рабочих процессов. Обычно это число соответствует количеству ядер процессора.
worker_processes auto;
🟠Настройка системных параметров
1⃣Увеличение лимита открытых файлов в системе
Отредактируйте файл /etc/sysctl.conf и добавьте строку
fs.file-max = 2097152
Примените изменения
sudo sysctl -p
2⃣Настройка TCP-параметров
Отредактируйте файл /etc/sysctl.conf и добавьте строки
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 4096
Примените изменения
sudo sysctl -p
🟠Перезагрузка Nginx
После внесения всех изменений перезагрузите Nginx для их применения:
sudo systemctl restart nginx
Пример конфигурационного файла Nginx
user nginx;
worker_processes auto;
worker_rlimit_nofile 65536;
events {
worker_connections 65536;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/conf.d/*.conf;
}
🚩Проверка изменений
Проверка лимита открытых файлов
ulimit -n
Проверка параметров sysctl
sysctl fs.file-max
sysctl net.core.somaxconn
sysctl net.ipv4.tcp_max_syn_backlog
Ставь 👍 и забирай 📚 Базу знаний🤔 Чем отличаются HTTP и HTTPS?
HTTP (HyperText Transfer Protocol) — это протокол передачи данных, используемый для загрузки веб-страниц. HTTPS (HTTP Secure) — это расширение HTTP, которое добавляет слой шифрования (SSL/TLS), обеспечивая безопасную передачу данных между клиентом и сервером. HTTPS защищает от прослушивания и манипуляций данными.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что слышали про ulimits?
Это команда в Unix-подобных операционных системах, которая используется для ограничения ресурсов, доступных оболочке и запущенным из нее процессам. С помощью
ulimit можно устанавливать и проверять различные лимиты, такие как количество открытых файлов, размер стека, размер файлов и т. д. Эти лимиты помогают предотвратить исчерпание системных ресурсов отдельными процессами и улучшить безопасность и стабильность системы.
🚩Параметры
🟠-n
Максимальное количество открытых файлов (file descriptors).
🟠-u
Максимальное количество процессов, которые может создать пользователь.
🟠-f
Максимальный размер файлов, которые могут быть созданы пользователем (в блоках).
🟠-s
Размер стека (stack size).
🟠-c
Размер файлов core dump.
🟠-v
Максимальный объем виртуальной памяти (virtual memory size).
🟠-l
Максимальный объем памяти, который может быть заблокирован в оперативной памяти (locked-in-memory size).
🚩Примеры использования
1⃣Проверка текущих лимитов
ulimit -a
Вывод этой команды покажет все текущие лимиты для текущего пользователя и сеанса
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63691
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 63691
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
2⃣Установка лимитов
🟠На количество открытых файлов
Это установит лимит на 4096 открытых файлов для текущей сессии.
ulimit -n 4096
🟠На размер файлов
Это установит максимальный размер файла в 1 ГБ (1048576 блоков по 1024 байта).
ulimit -f 1048576
🟠На размер стека
Это установит размер стека в 16 МБ.
ulimit -s 16384
3⃣Постоянная настройка лимитов
Чтобы установить лимиты на постоянной основе, нужно отредактировать конфигурационные файлы, такие как /etc/security/limits.conf и /etc/pam.d/common-session.
* soft nofile 4096
* hard nofile 65536
* soft nproc 4096
* hard nproc 8192
🚩Примеры использования в скриптах
Вы можете включить ulimit в ваши скрипты для временного изменения лимитов ресурсов перед выполнением команд
#!/bin/bash
ulimit -n 4096
ulimit -s 16384
# Выполнение команд
./myprogram
🚩Важные замечания
🟠Root и обычные пользователи
Root может устанавливать более высокие лимиты, чем обычные пользователи. Ограничения могут варьироваться между различными системами и дистрибутивами Linux.
🟠Применение изменений
Изменения, сделанные с помощью команды ulimit, применяются только к текущему сеансу и процессам, запущенным из него.
🟠Максимальные значения
Лимиты могут иметь максимальные значения, заданные ядром системы. Например, максимальный лимит для количества открытых файлов может быть установлен с помощью параметра fs.file-max в /etc/sysctl.conf.
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое helm, helm charts?
Helm — это менеджер пакетов для Kubernetes, который упрощает установку и управление приложениями. Helm Charts — это пакеты предварительно настроенных ресурсов Kubernetes, которые можно развертывать как единые приложения. Charts описывают набор связанных ресурсов Kubernetes и включают в себя все необходимые зависимости и параметры конфигурации.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как узнать ip-адрес какого-нибудь сайта?
🚩Методы
🟠Использование команды `ping`
Команда
ping отправляет пакеты ICMP на указанный домен и отображает IP-адрес.
ping google.com
Пример вывода
В этом примере IP-адрес google.com — 142.250.190.78.
PING google.com (142.250.190.78): 56 data bytes
64 bytes from 142.250.190.78: icmp_seq=0 ttl=115 time=14.3 ms
🟠Использование команды `nslookup`
Команда nslookup запрашивает DNS-сервер для получения информации о домене, включая IP-адрес.
nslookup google.com
Пример вывода
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 142.250.190.78
🟠Использование команды `dig`
Команда dig (domain information groper) запрашивает DNS-сервер для получения информации о домене. Она более гибкая и детализированная, чем nslookup.
dig google.com
Пример вывода
; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49142
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 299 IN A 142.250.190.78
;; Query time: 21 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jul 26 12:00:00 UTC 2024
;; MSG SIZE rcvd: 55
🟠Использование команды `host`
Команда host — еще один способ запроса DNS для получения IP-адреса домена.
host google.com
Пример вывода
google.com has address 142.250.190.78
google.com has IPv6 address 2607:f8b0:4005:809::200e
🟠Использование онлайн-сервисов
Существует множество онлайн-сервисов, которые позволяют определить IP-адрес веб-сайта.
[WhatIsMyIPAddress](https://www.whatismyipaddress.com/)
[DNSWatch](https://www.dnswatch.info/)
[IP-Checker](https://ipinfo.info/html/ip_checker.php)
🚩Примеры использования
ping
ping example.com
PING example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=12.3 ms
nslookup
nslookup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
dig
dig example.com
; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32477
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 299 IN A 93.184.216.34
;; Query time: 21 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jul 26 12:00:00 UTC 2024
;; MSG SIZE rcvd: 55
host
host example.com
example.com has address 93.184.216.34
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое неймспейс?
Неймспейс (namespace) в Kubernetes — это механизм логической изоляции ресурсов кластера, позволяющий разделять рабочие окружения или группы ресурсов между различными командами или проектами. Неймспейсы позволяют управлять доступом, квотами на ресурсы и ограничивать видимость ресурсов между разными частями системы. Это упрощает организацию и управление ресурсами в больших кластерах, где различные приложения и среды должны быть отделены друг от друга. Неймспейсы делают управление кластером более гибким и масштабируемым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Российский рынок ИИ-решений: прогнозы, тренды, аналитика
Российский рынок ИИ-решений: прогнозы, тренды, аналитика. Монитор технологий
Приглашаем вас на уникальное офлайн-событие проекта "ГенИИ", посвященное современным ИИ-технологиям! ⚡
📊 Узнайте, как российские инновации в области ИИ могут изменить бизнес и способствовать технологическому суверенитету. Мы поделимся результатами исследования «Монитор технологий: ИИ-блок» и опроса студенческого сообщества.
🎓 Кому будет интересно?
– Экспертам в сфере ИТ
– Представителям бизнеса
– Госструктурам и НПО
– Студентам и молодым специалистам
Когда? 5 ноября, 11:00–15:00
Где? Москва, пр. Мира, 119, стр. 461 (ВДНХ)
Вход: бесплатно
✅ Программа:
– Обзор текущих трендов
– Технологическая карта решений ИИ
– Дискуссионная панель и интерактив
💻 Спикеры: Ведущие эксперты в области ИТ и ИИ.
Зарегистрироваться
#реклама
rdtex-event.timepad.ru
О рекламодателе
🤔 Какие могут быть лимиты у nginx и со стороны чего?
Как и любая другая серверная программа, может сталкиваться с различными лимитами, которые могут ограничивать его производительность и возможности. Эти лимиты могут исходить как от самой конфигурации Nginx, так и от операционной системы и оборудования.
🚩Лимиты со стороны Nginx
🟠worker_connections
Определяет максимальное количество соединений, которые каждый рабочий процесс (worker) может обслуживать одновременно. Конфигурация:
/etc/nginx/nginx.conf
events {
worker_connections 1024;
}
🟠worker_processes
Определяет количество рабочих процессов. Обычно рекомендуется настроить на количество ядер процессора. Конфигурация: /etc/nginx/nginx.conf
worker_processes auto;
🟠client_max_body_size
Определяет максимальный размер тела запроса (например, загрузка файлов). Конфигурация: /etc/nginx/nginx.conf или в контексте сервера/локации.
http {
client_max_body_size 10m;
}
🟠client_body_buffer_size
Размер буфера для хранения тела запроса клиента. Конфигурация: /etc/nginx/nginx.conf
http {
client_body_buffer_size 8k;
}
🟠limit_conn_zone и limit_conn
Используются для ограничения количества соединений от одного клиента. Конфигурация: /etc/nginx/nginx.conf
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 10;
}
}
}
🟠limit_req_zone и limit_req
Используются для ограничения количества запросов от одного клиента в единицу времени (например, для защиты от DDoS-атак). Конфигурация: /etc/nginx/nginx.conf
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location / {
limit_req zone=one burst=5;
}
}
}
🚩Лимиты со стороны операционной системы
🟠Максимальное количество открытых файлов
Linux системам по умолчанию разрешается иметь ограниченное количество открытых файловых дескрипторов на процесс. Проверка текущих лимитов
ulimit -n
Увеличение лимитов
В /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
🟠Системные лимиты на количество файлов
В /etc/sysctl.conf
fs.file-max = 2097152
Применение изменений
sudo sysctl -p
🟠TCP-параметры:
Максимальное количество полуподключений.
В /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 4096
Применение изменений
sudo sysctl -p
🚩Лимиты со стороны оборудования
🟠Производительность процессора
Количество ядер и тактовая частота процессора могут влиять на количество одновременных соединений и общую производительность Nginx.
🟠Объем оперативной памяти
Недостаток оперативной памяти может привести к увеличению времени отклика и сбоям при большом количестве запросов.
🟠Скорость дисковой системы
Высокая нагрузка на диск может замедлить обработку запросов, особенно при работе с большими файлами или логами.
Ставь 👍 и забирай 📚 Базу знаний🤔 Что такое pod?
Pod — это основная единица развертывания в Kubernetes, которая представляет собой один или несколько контейнеров, работающих вместе и разделяющих общие ресурсы, такие как сеть и хранилище. Каждый pod получает уникальный IP-адрес в кластере и может включать контейнеры, которые взаимодействуют друг с другом. Pod является недолговечным и может быть перезапущен или пересоздан при сбое, поэтому Kubernetes автоматически управляет их состоянием. Pod помогает упрощать управление контейнерами в кластере.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
