# конспект · шаг 4 из 4
Конспект: установка и раскладка файлов
Как поставить nginx и где потом искать его файлы.
Два способа
Контейнер - для песочницы: правки конфигов делаются на своей машине,
reload применяет их не роняя сервер.
docker run --rm --name lab -p 8080:80 \
-v ~/nginx-lab/conf.d:/etc/nginx/conf.d:ro \
-v ~/nginx-lab/www:/var/www/site:ro \
nginx:1.31-alpine
docker exec lab nginx -t && docker exec lab nginx -s reload
Пакет - для сервера:
sudo apt install nginx # Debian, Ubuntu
sudo dnf install nginx # Fedora, RHEL, Rocky
Где что лежит
| Что | Где обычно |
|---|---|
| главный конфиг | /etc/nginx/nginx.conf |
| свои сайты | /etc/nginx/conf.d/*.conf (или sites-available + sites-enabled в Debian) |
| логи | /var/log/nginx/{access,error}.log |
| корень по умолчанию | /usr/share/nginx/html или /var/www/html |
Словарь для пришедших из другого мира
| Если ты из… | То server {} - это… |
|---|---|
| Django/Flask | не приложение, а виртуальный хост перед ним |
| WordPress/Apache | аналог VirtualHost, но без .htaccess: конфиг только глобальный |
| мира контейнеров | процесс, который сам ничего не выполняет из твоего кода |
Три команды и проверка
nginx -t # проверить синтаксис, ничего не применяя
nginx -s reload # применить конфиг без разрыва соединений
nginx -T # напечатать собранный конфиг целиком
curl -i http://localhost:8080/ # проверять ответ этим, а не браузером
Браузер кеширует и подставляет своё; curl -i показывает ровно то, что отдал
сервер, вместе с заголовками. -H 'Host: shop.local' позволяет притвориться
другим доменом, не трогая /etc/hosts.
Две ловушки первого дня
duplicate default server - в сборках Debian рядом лежит
sites-enabled/default с тем же признаком. Такой блок на пару адрес-порт может
быть только один. Ищется grep -rn default_server /etc/nginx/, лечится
удалением ссылки, а не правкой чужого файла.
403 и Permission denied в error_log - права нужны на ВХОД в каждый
каталог пути, а не только на файл. Вся цепочка показывается одной командой
namei -l /path/to/index.html. Домашний каталог обычно закрыт, поэтому сайты
держат в /var/www.
Ловушки джокера
- Ставить пакет из репозитория дистрибутива и ждать свежих возможностей. Версия там обычно на год-два старше; для новых директив подключают официальный репозиторий nginx.
- Править
nginx.confвместоconf.d/. Свои настройки живут отдельным файлом - иначе обновление пакета однажды спросит, чью версию оставить.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий