Nginx php-fpm en el problema del escritorio Docker

Nginx php-fpm en el problema del escritorio Docker

Tengo nginx y php-fpm ejecutándose en un solo contenedor en el escritorio Docker para Windows. Soy TI y no un desarrollador, así que, por favor, simplifiquelo. He estado intentando que una configuración funcione sin éxito. Necesito poder permitir que varios subdominios pasen a php-fpm, donde la aplicación php determinará qué base de datos abrir por subdominio específico. entonces clientA.mydomain.com clientB.mydomain.com debería pasar a php, y la aplicación sabrá a qué base de datos conectarse.

He buscado y encontrado soluciones para redirigir subdominios a sitios separados, pero necesito permitir que todos los subdominios tengan un solo sitio y procesen como lo hace localhost.

Esto funciona bien usando localhost o 127.0.0.1, pero cuando intento usar una URL de DNS, el sitio deja de iniciar sesión y todas las llamadas ajax dejan de funcionar. Parece que las variables de sesión dejan de transmitirse. Se muestra la página de inicio de sesión y una contraseña fallida mostrará ese error, por lo que sé que el sitio se está comunicando con la base de datos adecuada, pero el registro no muestra ningún error ni respuesta ajax.

server {
    listen       80  default_server;
    server_name  _;  
    # I have tried server_name *.mydomain.com and server_name .mydomain.com, the latter yeilds the same results as this current config.
    
    root /usr/share/nginx/html;
    server_tokens off;

    index index.php index.html index.htm;

    charset utf-8;
    # Add stdout logging
    error_log /dev/stdout info;
    access_log /dev/stdout;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Tuve que eliminar mucho para enviar la pregunta.

Al usar localhost o 127.0.01 con esta misma configuración, el inicio de sesión funciona, ajax responde y el sitio carga la página principal como se esperaba.

nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "POST /login.php HTTP/1.1" 302
nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET / HTTP/1.1" 200 
nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET /framework.js?version=
nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET /resources/all.css 
192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET /resources/js/pdfjs/pdf.js 
nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET /app.js?version=2021
nginx stdout | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "GET /resources/images/login_loader_logo.gif
192.168.80.1 - - [08/Sep/2021:13:23:01 +0000] "GET /ajax.php?_dc=163110738
192.168.80.1 - - [08/Sep/2021:13:23:02 +0000] "POST /ajax.php HTTP/1.1" 200 
192.168.80.1 - - [08/Sep/2021:13:23:02 +0000] "GET /ajax.php?_dc=1631107382410&

Cuando uso la entrada de URL que creé en mi archivo host para probar, parece que js y ajax no funcionan usando la URL.

192.168.96.1 - - [08/Sep/2021:13:29:45 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:45 +0000] "GET /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:46 +0000] "GET / HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:46 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:47 +0000] "GET /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "POST /login.php HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "GET / HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:58 +0000] "GET /showClientLogo.php HTTP/1.1" 200

Gracias de antemano.

Respuesta1

@MichaelHampton tenía razón, probé varias cosas y noté que se creaban nuevas sesiones durante las redirecciones, lo que hacía que el sistema siguiera apareciendo en la página de inicio de sesión. Hay una configuración interna en la aplicación que se ocupa de las cookies entre dominios y cuando la desactivé, el sitio funciona usando una URL de dominio. Como estoy en pruebas, solo estoy usando http y no https.

información relacionada