Привет! 🌟
Добро пожаловать! Здесь ты узнаешь о новых фичах в мире DevOps, получишь помощь в рабочих задачах и освоишь профессию без токсичного комьюнити. Подключайся и общайся со мной @kubernetesman! ❤️
Post #76
212
DE @devops360
Showing posts older than #77 · Back to latest
webservers и запускает службу:---
- name: Установить и запустить Nginx
hosts: webservers
become: yes # Поднимает привилегии до суперпользователя
tasks:
- name: Обновить пакеты
apt:
update_cache: yes
- name: Установить Nginx
apt:
name: nginx
state: present
- name: Запустить и включить Nginx
service:
name: nginx
state: started
enabled: yes
tasks/: Задачи, которые будет выполнять роль.handlers/: Обработчики, которые выполняются при изменении состояния (например, перезапуск службы).templates/: Шаблоны файлов, которые могут быть использованы.files/: Файлы, которые могут быть скопированы на удаленные хосты.vars/: Переменные, специфичные для роли.defaults/: Значения по умолчанию для переменных роли.meta/: Метаданные роли.ansible-galaxy init nginx
---
- name: Обновить пакеты
apt:
update_cache: yes
- name: Установить Nginx
apt:
name: nginx
state: present
- name: Запустить и включить Nginx
service:
name: nginx
state: started
enabled: yes
---
- name: Установить Нginx с помощью роли
hosts: webservers
become: yes
roles:
- nginx
ansible-playbook, как показано ниже:ansible-playbook имя_вашего_плейбука.yml
ansible-playbook -i your_inventory_file имя_вашего_плейбука.yml
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install ansible
ansible --version
sudo apt update
sudo apt install ansible
ansible --version
sudo yum install epel-release
sudo yum install ansible
ansible --version
hosts или inventory) содержит список серверов, с которыми будет работать Ansible. Создайте новый файл, например inventory.ini:[myservers]
192.168.1.10
192.168.1.11
myservers содержит сервера, на которых вы будете проводить операции.myplaybook.yml:- hosts: myservers
tasks:
- name: Установить Apache
yum:
name: httpd
state: present
httpd (Apache) на все серверы из группы myservers.ansible-playbook -i inventory.ini myplaybook.yml
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
watch -n 1 'cat /var/log/nginx/access.log | wc -l'
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | headhttp {
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
server {
location ~ \.php$ {
fastcgi_cache my_cache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
}
}
}cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
sudo chmod -R 755 /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
sudo nginx -t ✅ Проверка конфигурацииsudo systemctl restart nginx 🔁 Перезапускtail -f /var/log/nginx/error.log ⚠️ Просмотр ошибокsudo ss -tulpn | grep nginx 📡 Проверка портаls -l filename
sudo chown newowner filename # Изменить владельца
sudo chown :newgroup filename # Изменить группу
sudo chown newowner:newgroup filename # Оба сразу
chmod u+rwx file.txt # Добавить все права для владельца
chmod go-w file.txt # Убрать право записи для группы и других
chmod a+x file.txt # Добавить выполнение для всех
chmod 755 file.txt # Владелец всё, группа и другие читают/выполняют
chmod 644 file.txt # Владелец читает/пишет, остальные только читают
groups username
sudo usermod -aG groupname username
sudo groupadd newgroup
chmod u+s file.txt
# Позволяет выполнять файл с правами его владельца
chmod g+s directory/
# Новые файлы в директории наследуют её группу
chmod +t /path/to/directory
# Только владелец файла может его удалить из директории
chmod 710 folder/
# Владелец полный доступ, группа и другие только заход
chmod -R 755 folder/
chmod 600 secretfile.txt
chown -R www-data:www-data /var/www/
find /var/www/ -type d -exec chmod 750 {} \;
find /var/www/ -type f -exec chmod 640 {} \;
ls -l 📋 Просмотр правchmod 🔑 Изменение правchown 👤 Изменение владельцаgroups 🧾 Просмотр группsudo systemctl start nginx ✅ Запуск службы Nginx. sudo systemctl stop nginx ❌ Остановка службы Nginx. sudo systemctl restart nginx 🔁 Перезапуск службы Nginx. sudo systemctl reload nginx ↺ Перечитать конфигурацию без остановки службы. sudo nginx -t 📝 Проверяет синтаксис конфигурационных файлов. Если всё в порядке, выведет: "syntax is ok" и "test is successful". sudo systemctl status nginx 👀 Показывает текущий статус службы Nginx. sudo ss -tulpn | grep nginx 📡 Проверяет, на каких портах работает Nginx. /etc/nginx/nginx.conf 📋 Главный файл конфигурации Nginx. /etc/nginx/sites-available/ 📥 Директория с доступными конфигурациями сайтов. /etc/nginx/sites-enabled/ 📤 Символические ссылки на активные конфигурации сайтов. /etc/nginx/ssl/ 🔒 Обычное место для хранения SSL-сертификатов. server {
listen 80; # Прослушивание порта 80 (HTTP)
server_name example.com www.example.com; # Доменные имена
root /var/www/example.com; # Корневая директория сайта
index index.html index.htm; # Файлы по умолчанию
location / { # Настройки для корня сайта
try_files $uri $uri/ =404; # Правила обработки запросов
}
}sudo nginx -t) ✅. tail -f /var/log/nginx/error.log ⚠️ Для просмотра ошибок. tail -f /var/log/nginx/access.log 📊 Для просмотра успешных запросов. top
htop
sudo apt install htop)df -h
du -sh *
netstat -tuln
ss -tuln
vmstat 2 5
iostat -xz 2 5
sudo apt install sysstat)sar -u 2 5
sudo apt install sysstat)mpstat -P ALL 2 5
sudo apt install sysstat)mpstatfree -mswapon --showps auxjournalctl -xe-h для получения информации в человекочитаемом форматеwatch -n 2 df -h)$uri и $uri/http://example.com/images/pic.jpg, то значение $uri будет равно /images/pic.jpg.http://example.com/images/, то $uri/ будет равно /images/.server {
listen 80;
server_name example.com;
location / {
try_files $uri $uri/ =404; # Попытка найти файл или директорию, иначе 404
}
location /images/ {
alias /var/www/images/; # Отображение содержимого из другой директории
}
location /api/ {
proxy_pass http://backend:5000; # Проксирование запросов к другому серверу
}
}location=. Это означает, что Nginx будет обрабатывать запрос только при точном совпадении. Например, location = /robots.txt {
allow all;
log_not_found off;
}
location /prefix/ {} для обработки всех запросов, начинающихся с заданного префикса. Это позволяет обрабатывать запросы к разным частям сайта. location ~* \.(jpg|jpeg|png|gif)$ {
expires 30d; # Установка кэширования для изображений
}
location. Например, location /products/ {
try_files $uri $uri/ /404.html; # Попробуйте найти, если нет - 404
}
location /products/item/ {
proxy_pass http://backend:8080/products/item/; # Проксирование для конкретного маршрута
}
error_page для обработки специфичных ошибок. Например,error_page 404 /404.html;
location, различных переменных и механизмов обработки ошибок. Каждый разработчик может настроить свой веб-сервер под уникальные потребности, учитывая все вышеперечисленные аспекты.sudo nginx -t && sudo systemctl restart nginx