Я хочу настроить конфигурацию Docker-контейнеров на моем хосте AWS EC2.
Я хочу иметь контейнер обратного прокси-сервера Apache, который принимает запросы от хоста EC2 через порты 80, 443 и 8080 и передаетэто на контейнерах позади него.Запросы на 80 и 443 следует передавать в контейнер веб-приложения (с открытым портом 80).Принимая во внимание, что те на 8080, должны быть переданы контейнеру, выполняющему phpmyadmin (с открытым портом 80).Я использую официальное изображение phpmyadmin / phpmyadmin docker.
В настоящее время пытаюсь запустить эту настройку для локальной разработки, где:
При проверке запроса в Chrome Dev Tools отображается «Состояние» запроса phpmyadmin как «не выполнено».Я не могу понять, что является причиной сбоя запроса.Буду признателен за любую помощь в этом.
Ниже моя конфигурация.
Переменные среды (.dev.env):
# For PHPMyAdmin
PMA_HOST=db
PMA_PORT=3306
PMA_ABSOLUTE_URI=http://localhost:8080/
Конфигурация docker-compose.yml:
# Development
version: '3'
services:
db:<test_database_config>
proxy:
build:
context: .
dockerfile: Dockerfile.proxy.dev
env_file: .dev.env
volumes:
- ./etc/apache2/sites-available:/etc/apache2/sites-available
ports:
- "80:80"
- "443:443"
- "8080:8080"
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db
env_file: .dev.env
expose:
- '80'
depends_on:
- db
- proxy
web:
build:
context: .
dockerfile: Dockerfile.dev
env_file: .dev.env
volumes:
- ./website_content:/var/www/html/website_content
- ./subdomain_website_content:/var/www/html/subdomain_website_content
- ./etc/apache2/sites-available:/etc/apache2/sites-available
extra_hosts:
- "subdomain.localhost:127.0.0.1"
expose:
- "80"
depends_on:
- db
- proxy
- phpmyadmin
Конфигурация обратного прокси-сервера Apache (включенная конфигурация на сайтах с включенным):
<IfModule mod_ssl.c>
<VirtualHost *:80>
ErrorLog ${APACHE_LOG_DIR}/proxy_port_80_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_port_80_access.log combined
ProxyPreserveHost On
ProxyPass / http://web:80/
ProxyPassReverse / http://web:80/
</VirtualHost>
<VirtualHost *:443>
ErrorLog ${APACHE_LOG_DIR}/proxy_port_443_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_port_443_access.log combined
ProxyPreserveHost On
ProxyPass / http://web:80/
ProxyPassReverse / http://web:80/
</VirtualHost>
</IfModule>
<VirtualHost *:8080>
ErrorLog ${APACHE_LOG_DIR}/proxy_port_8080_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_port_8080_access.log combined
ProxyPreserveHost On
ProxyPass / http://phpmyadmin:80/
ProxyPassReverse / http://phpmyadmin:80/
</VirtualHost>