Я только что настроил свой сервер на многосайтовый revproxy, используя внешнюю сеть docker, и настроил свой контейнер revproxy nginx для работы с fastcgi. Прямо сейчас, в целях тестирования, один из сайтов работает, но кажется, что nginx для контейнера веб-сайта неправильно определяет путь к файлу индекса laravel и предоставляет мне только страницу «Добро пожаловать nginx» по умолчанию.
Буду очень благодарен за любую помощь.
Мой Докерфайл
для контейнера revproxy
ОТ nginx:alpine
ВЫСТАВИТЬ 80/TCP
ВЫСТАВИТЬ 443/TCP
CMD ["/bin/sh", "-c", "exec nginx -g 'демон выключен;';"]
РАБОЧИЙ КАТАЛОГ /var/www
docker-compose
для контейнера revproxy
версия: '3.8'
Сервисы:
nginx-прокси:
строить: ./
имя_контейнера: nginx-прокси
порты:
- 80:80
- 443:443
тома:
- ./default.conf:/etc/nginx/conf.d/default.conf
- /var/www:/var/www/html
- ./backend-not-found.html:/var/www/html/backend-not-found.html
- ./сертификаты:/etc/nginx/сертификаты:ro
сети:
- прокси
перезапуск: всегда
сети:
прокси:
внешний:
имя: nginx-прокси
nginx.conf
файл для контейнера revproxy
сервер {
слушать 80;
имя_сервера site.com;
кодировка UTF-8;
корень /var/www/html/laravel/public;
error_page 404 /backend-not-found.html;
местоположение = /backend-not-found.html {
позволять все;
}
расположение ~ \.php$ {
преобразователь 127.0.0.11;
установить $upstream laravel-app:9000;
# nginx теперь запускается, если хост недоступен
fastcgi_pass $ вверх по течению;
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
включить fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
место расположения / {
преобразователь 127.0.0.11;
установить $upstream http://laravel-nginx:80;
# nginx теперь запускается, если хост недоступен
proxy_pass $ вверх по течению;
try_files $uri $uri/ /index.php?$query_string;
gzip_static включен;
}
}
# По умолчанию
сервер {
слушать 80 default_server;
имя сервера _;
корень /var/www/html;
кодировка UTF-8;
error_page 404 /backend-not-found.html;
местоположение = /backend-not-found.html {
позволять все;
}
место расположения / {
вернуть 404;
}
доступ_лог выключен;
log_not_found выключен;
error_log /var/log/nginx/error.log ошибка;
}
И docker-compose
файл для контейнера веб-сайта
версия: '3.8'
Сервисы:
# PHP-сервис
приложение:
строить:
аргументы:
Пользователь: Алекс
ид: 1000
контекст: ./
докерфайл: Докерфайл
container_name: ${APP_NAME}-приложение
перезапуск: всегда
телетайп: правда
рабочий_каталог: /var/www
порты:
- 9000:9000
ссылки:
- дб
тома:
- ./:/var/www
- ./docker-compose_configs/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini
сети:
- прокси
- сеть приложений
#Сервис Nginx
нгинкс:
изображение: nginx:alpine
имя_контейнера: ${APP_NAME}-nginx
перезапуск: всегда
телетайп: правда
порты:
- 8080:80
перезапуск: всегда
тома:
- ./:/var/www/html
сети:
- прокси
- сеть приложений
зависит от:
- приложение
ссылки:
- приложение
#Служба MySQL
дБ:
изображение: mysql: последний
container_name: ${APP_NAME}-db
перезапуск: если не остановлен
телетайп: правда
порты:
- 3306:3306
среда:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
SERVICE_TAGS: разработка
сети:
- сеть приложений
тома:
- dbdata:/var/lib/mysql
- ./docker-compose_configs/mysql/my.cnf:/etc/mysql/my.cnf
#PhpMyAdmin
phpmyadmin:
изображение: phpmyadmin/phpmyadmin
container_name: ${APP_NAME}-pma
среда:
PMA_HOST: дб
PMA_ARBITRARY: 1
ЗАГРУЗИТЬ_LIMIT: 400M
перезапуск: всегда
сети:
- сеть приложений
порты:
- 8081:80
зависит от:
- нгинкс
- дб
#эластичный поиск
эластичный поиск:
изображение: эластичный поиск: 7.12.1
container_name: ${APP_NAME}-elasticsearch
тома:
- данные эластичного поиска:/usr/доля/эластичный поиск/данные
среда:
- discovery.type=один узел
- cluster.routing.allocation.disk.threshold_enabled=false
- bootstrap.memory_lock=истина
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
uлимит:
мемлок:
мягкий: -1
сложно: -1
порты:
- "9200:9200"
сети:
- сеть приложений
зависит от:
- дб
#Докер Сети
сети:
сеть приложений:
имя: ${APP_NAME}-сеть
водитель: мост
прокси:
внешний:
имя: nginx-прокси
#Тома
тома:
БД:
водитель: местный
данные эластичного поиска:
водитель: местный