Настройка Nginx веб-сервера
Содержание
- 1 Настройка Nginx веб-сервера
- 1.1 1. Подготовка системы
- 1.2 2. Установка Nginx
- 1.3 3. Проверка установки
- 1.4 4. Базовая настройка Nginx
- 1.5 5. Настройка PHP-FPM
- 1.6 6. Настройка SSL сертификатов
- 1.7 7. Оптимизация производительности
- 1.8 8. Настройка файрвола
- 1.9 9. Управление Nginx
- 1.10 10. Мониторинг и логи
- 1.11 11. Безопасность
- 1.12 Заключение
Настройка Nginx веб-сервера
1. Подготовка системы
- Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
- Обновите систему до последней версии пакетов.
2. Установка Nginx
Для Ubuntu/Debian
1. Обновите список пакетов:
sudo apt update
2. Установите Nginx:
sudo apt install nginx
3. Запустите и включите автозапуск Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Для CentOS/RHEL/Fedora
1. Установите Nginx:
sudo yum install nginx
- или для новых версий
sudo dnf install nginx
2. Запустите и включите автозапуск:
sudo systemctl start nginx
sudo systemctl enable nginx
3. Проверка установки
1. Откройте веб-браузер и перейдите по адресу http://ваш-ip-адрес или http://localhost. 2. Вы должны увидеть страницу приветствия Nginx.
4. Базовая настройка Nginx
Структура конфигурационных файлов
- Основной файл конфигурации: `/etc/nginx/nginx.conf`
- Директория сайтов: `/etc/nginx/sites-available/`
- Активные сайты: `/etc/nginx/sites-enabled/`
- Директория логов: `/var/log/nginx/`
Создание виртуального хоста
1. Создайте директорию для вашего сайта:
sudo mkdir -p /var/www/example.com/public_html
2. Создайте файл конфигурации сайта:
sudo nano /etc/nginx/sites-available/example.com
3. Добавьте следующую конфигурацию:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
4. Создайте символическую ссылку для активации сайта:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
5. Проверьте конфигурацию:
sudo nginx -t
6. Перезапустите Nginx:
sudo systemctl restart nginx
5. Настройка PHP-FPM
Установка PHP-FPM
1. Установите PHP и PHP-FPM:
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
2. Запустите PHP-FPM:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
Настройка PHP-FPM для Nginx
1. Отредактируйте конфигурацию PHP-FPM:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
2. Найдите и измените следующие параметры:
listen = /var/run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
3. Перезапустите PHP-FPM:
sudo systemctl restart php8.1-fpm
6. Настройка SSL сертификатов
Установка Certbot
1. Установите Certbot:
sudo apt install certbot python3-certbot-nginx
2. Получите SSL сертификат:
sudo certbot --nginx -d example.com -d www.example.com
3. Проверьте автоматическое обновление:
sudo certbot renew --dry-run
7. Оптимизация производительности
Настройка кэширования
1. Добавьте в конфигурацию сайта:
- Кэширование статических файлов
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
- Сжатие
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
Настройка worker процессов
1. Отредактируйте основной файл конфигурации:
sudo nano /etc/nginx/nginx.conf
2. Настройте параметры:
worker_processes auto;
worker_connections 1024;
keepalive_timeout 65;
client_max_body_size 100M;
8. Настройка файрвола
Для Ubuntu/Debian (ufw)
1. Разрешите HTTP и HTTPS трафик:
sudo ufw allow 'Nginx Full'
Для CentOS/RHEL (firewalld)
1. Разрешите HTTP и HTTPS:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
9. Управление Nginx
Основные команды управления
- Запуск Nginx:
sudo systemctl start nginx
- Остановка Nginx:
sudo systemctl stop nginx
- Перезапуск Nginx:
sudo systemctl restart nginx
- Перезагрузка конфигурации:
sudo systemctl reload nginx
- Проверка статуса:
sudo systemctl status nginx
- Проверка конфигурации:
sudo nginx -t
10. Мониторинг и логи
Просмотр логов
- Логи ошибок:
sudo tail -f /var/log/nginx/error.log
- Логи доступа:
sudo tail -f /var/log/nginx/access.log
- Все логи Nginx:
sudo tail -f /var/log/nginx/*.log
Мониторинг производительности
1. Установите htop для мониторинга:
sudo apt install htop
2. Запустите мониторинг:
htop
11. Безопасность
Базовая настройка безопасности
1. Скрыть версию Nginx:
server_tokens off;
2. Настроить ограничения:
- Ограничение размера запроса
client_max_body_size 10M;
- Таймауты
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
3. Настроить права доступа:
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 755 /var/www/
Заключение
Nginx веб-сервер успешно установлен и настроен! Теперь вы можете размещать высокопроизводительные веб-сайты.
Для размещения ваших проектов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных проектов с Nginx
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой Nginx и оптимизацией производительности вашего сервера!