Привет! Конфигурация Nginx для Yii2 может потребовать некоторых особых настроек, чтобы ваше приложение работало корректно и эффективно. Ниже приведен пример базовой конфигурации Nginx для Yii2. Вы можете адаптировать его под свои нужды.
```nginx
server {
listen 80;
server_name your_domain.com; # Замените на ваш домен
root /path/to/your/yii2/app/web; # Укажите путь к папке вашего приложения Yii2
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # Порт, на который настроен PHP-FPM
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
# Настройки для статических файлов
location ~ (css|js|jpg|png|gif|ico|svg)$ {
expires 30d;
access_log off;
}
# Настройка для ошибок
error_page 404 /404.html;
location = /404.html {
internal;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
internal;
}
}
```
### Пояснения к настройкам:
1. **server_name:** укажите ваш домен, чтобы Nginx знал, для какого домена обрабатывать запросы.
2. **root:** укажите путь к папке `web` вашего приложения Yii2. Это важно, поскольку именно из этой папки будут обслуживаться запросы.
3. **try_files:** эта директива проверяет наличие запрашиваемого файла и, если его нет, перенаправляет запрос на `index.php`, передавая параметры.
4. **location ~ \.php$:** эта секция обрабатывает PHP файлы. Здесь вы указываете, как передавать запросы PHP в PHP-FPM (FastCGI Process Manager). Убедитесь, что `fastcgi_pass` указывает на правильный IP и порт вашего PHP-FPM.
5. **location ~ /\.ht:** это блокирующий доступ к скрытым файлам (например, `.htaccess`), так как они не нужны в Nginx.
6. **expires:** указывает кэширование для статических файлов (например, CSS и изображений), что улучшает производительность.
7. **error_page:** кастомизация страниц ошибок, таких как 404 и 50x.
### Рекомендации:
- Убедитесь, что ваш сервер имеет установленный и настроенный PHP-FPM для обработки PHP запросов.
- Логи Nginx могут быть полезны для диагностики ошибок. Разрешите запись логов, чтобы следить за ошибками.
- При необходимости настройте SSL для безопасной работы вашего сайта.
После внесения изменений перезагрузите Nginx, чтобы новые настройки вступили в силу:
```bash
sudo systemctl restart nginx
```
Удачи с вашим проектом на Yii2! Если у вас есть вопросы или проблемы, не стесняйтесь спрашивать.