$ command-helper

Nginx

Проверка и перезагрузка конфига, логи, reverse proxy, HTTPS с Let's Encrypt.

Потребуется вход через Google

Управление

Проверить конфиг
sudo nginx -t
Применить конфиг без простоя
sudo nginx -t && sudo systemctl reload nginx
Показать итоговый конфиг целикомпродвинутая
sudo nginx -T
Версия и параметры сборки
nginx -V

Логи

Access-лог в реальном времени
sudo tail -f /var/log/nginx/access.log
Error-лог в реальном времени
sudo tail -f /var/log/nginx/error.log
Количество ответов по кодампродвинутая
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
Самые запрашиваемые URLпродвинутая
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

Сайты

Включить сайт (схема Debian/Ubuntu)
sudo ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/
Reverse proxy на приложениепродвинутая
server {
    listen 80;
    server_name <domain>;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Проксирование WebSocketпродвинутая
location /ws/ {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
Редирект с HTTP на HTTPSпродвинутая
server {
    listen 80;
    server_name <domain>;
    return 301 https://$host$request_uri;
}

HTTPS (Let's Encrypt)

Получить сертификат и настроить nginx
sudo certbot --nginx -d <domain>
Проверить продление сертификата
sudo certbot renew --dry-run
Список сертификатов и сроки действия
sudo certbot certificates