Описание:
У меня есть устаревшее приложение CodeIgniter, работающее в среде Docker с PHP-FPM, MySQL и Nginx. Приложение работает нормально, когда я устанавливаю base_url в application/config/config.php на IP-адрес или http://domain_name.example.in:8086/, но когда я настроив его как https://domain_name.example.in/, я обнаружил ошибку «502 Bad Gateway».
Подробности настройки:
- Конфигурация Docker Compose:
Код: Выделить всё
version: '3.9'
services:
app:
build:
context: .
dockerfile: dockerfile
container_name: php-fpm
volumes:
- .:/var/www/html
networks:
- mynetwork
depends_on:
- db
db:
image: mysql:5.7
container_name: database
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
- ./data_dump.sql:/docker-entrypoint-initdb.d/data_dump.sql:ro
networks:
- mynetwork
nginx:
image: nginx:alpine
container_name: nginx
ports:
- "8080:80"
volumes:
- ./nginx-1.17.6/conf/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- .:/var/www/html
depends_on:
- app
volumes:
db_data:
networks:
mynetwork:
driver: bridge
- Файл Docker PHP-FPM:
Код: Выделить всё
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/freetype2 --with-jpeg-dir=/usr/include \
&& docker-php-ext-install gd
EXPOSE 9000
- Конфигурация Nginx:
- Конфигурация Cloudflare:< /strong>
- Я использую Cloudflare с гибким SSL, где Cloudflare обрабатывает завершение SSL и перенаправляет трафик на мой сервер через HTTP. .
Когда я установил для base_url в application/config/config.php значение https://domain_name.example.in/ , я получаю сообщение об ошибке «502 Bad Gateway». Однако когда я устанавливаю base_url либо на IP-адрес, либо на http://domain_name.example.in:8086/, приложение правильно перенаправляется в приложение.
Код: Выделить всё
$config['base_url'] = 'https://domainname.in/';
- Убедился, что и Nginx в контейнере Docker, и внешний сервер Nginx в хост настроен на правильную обработку прокси-запросов.
- Проверено, что порты для Nginx и PHP-FPM открыты и доступны.
- Проверены настройки Cloudflare SSL ( Гибкий SSL включен).
- Убедился, что мой внешний сервер Nginx правильно пересылает запросы в контейнер Docker Nginx.
- Убедился, что базовый URL-адрес и конфигурации SSL верны в приложении и Nginx.Убедился, что мой внешний сервер Nginx правильно пересылает запросы в контейнер Docker Nginx.
- Убедился, что базовый URL-адрес и конфигурации SSL верны в приложении и Nginx. li>
- Почему я сталкиваюсь с ошибкой 502 Bad Gateway при использовании https://domain_name.example.in/ в конфигурации base_url, но не с http://domain_name.example.in:8086/ или IP-адресом?
Может ли проблема быть связана с конфигурацией гибкого SSL Cloudflare или это неправильная конфигурация Nginx? - Нужно ли мне внести какие-либо конкретные изменения в мой Nginx конфигурацию для правильной обработки HTTPS-запросов от Cloudflare?
Подробнее здесь: https://stackoverflow.com/questions/793 ... inx-and-do