Beschreibung:
Ich habe eine ältere CodeIgniter-Anwendung, die in einer Docker-Umgebung mit PHP-FPM, MySQL und Nginx läuft. Die Anwendung funktioniert gut, wenn ich die base_url in application/config/config.php auf die IP-Adresse oder http://domain_name.example.in:8086/ setze, aber wenn ich Wenn Sie es als https://domain_name.example.in/ konfigurieren, tritt der Fehler „502 Bad Gateway“ auf.
Einrichtungsdetails:
- Docker Compose-Konfiguration:
Code: Select all
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
- PHP-FPM Docker-Datei:
Code: Select all
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-Konfiguration:
- Cloudflare-Konfiguration:< /strong>
- Ich verwende Cloudflare mit flexiblem SSL, wobei Cloudflare die SSL-Beendigung übernimmt und den Datenverkehr über HTTP an meinen Server weiterleitet .
Wenn ich die Basis-URL in application/config/config.php auf https://domain_name.example.in/ setze , ich erhalte die Fehlermeldung „502 Bad Gateway“. Wenn ich jedoch base_url entweder auf die IP-Adresse oder http://domain_name.example.in:8086/ setze, leitet die Anwendung korrekt zur App weiter.
Code: Select all
$config['base_url'] = 'https://domainname.in/';
- Es wurde sichergestellt, dass sowohl Nginx im Docker-Container als auch der externe Nginx-Server auf dem Der Host ist für die ordnungsgemäße Weiterleitung von Anfragen konfiguriert.
- Überprüft, dass die Ports für Nginx und PHP-FPM offen und zugänglich sind.
- Überprüfte Cloudflare-SSL-Einstellungen ( Flexibles SSL ist aktiviert).
- Bestätigt, dass mein externer Nginx-Server Anfragen korrekt an den Docker-Nginx-Container weiterleitet.
- Es wurde sichergestellt, dass sowohl die Basis-URL als auch die SSL-Konfigurationen in der App und in Nginx korrekt sind.
- Warum erhalte ich bei der Verwendung den Fehler 502 Bad Gateway? https://domain_name.example.in/ in der base_url-Konfiguration, aber nicht mit http://domain_name.example.in:8086/ oder der IP-Adresse?
Könnte das Problem mit der flexiblen SSL-Konfiguration von Cloudflare zusammenhängen oder handelt es sich um eine Nginx-Fehlkonfiguration? - Muss ich bestimmte Anpassungen an meiner Nginx-Konfiguration vornehmen? um die HTTPS-Anfragen von Cloudflare richtig zu verarbeiten?