Иногда вам может потребоваться расширить конфиг Nginx для добавления редиректов, HTTP-авторизации и пр.
Для этого вы можете скопировать ваши файлы конфигурации в директорию /etc/nginx/vhost.common.d
в процессе сборки собственного образа контейнера.
Чтобы предотвратить возможность утечки ваших конфигов Nginx, следует прибечь к одному из вариантов организации вашего репозитория:
- Разделить файлы веб-приложения и конфигурации Nginx, используя переменную окружения
WEBROOT
- Добавить конфиг Nginx, запрещающий прямой доступ к файлам внутри директории вашей конфигурации Nginx
- Исключить копирование конфигов Nginx внутрь корневой директории веб-сервера при сборке в вашем
Dockerfile
Если вы запускаете ваш контейнер за балансировщиком нагрузки, как например, ELB в AWS,
вам неообходимо сконфигурировать Nginx таким образом, чтобы получать настоящий IP адрес не от балансировщика,
а используя заголовок X-Forwarded-For
. Мы добавили две полезных переменных окружения для этого.
-e "REAL_IP_HEADER=1"
-e "REAL_IP_FROM=YOUR_CIDR_BLOCK"
Например:
docker run -d -e "REAL_IP_HEADER=1" -e "REAL_IP_FROM=10.1.0.0/16" spaceonfire/nginx-php-fpm:latest
Чтобы изменить таймаут чтения, укажите настройку NGINX_READ_TIMEOUT
в переменных окружения, например:
docker run -d -e NGINX_READ_TIMEOUT=300 spaceonfire/nginx-php-fpm:latest
Для не продакшн окружений значение таймаута автоматически выставляется на 9999
.