Проблема с Nginx php-fpm на рабочем столе Docker

Проблема с Nginx php-fpm на рабочем столе Docker

У меня nginx и php-fpm работают в одном контейнере на рабочем столе Docker для Windows. Я ИТ-специалист, а не разработчик, поэтому, пожалуйста, объясните мне, как это работает. Я пытаюсь заставить работать конфигурацию, но безуспешно. Мне нужно разрешить нескольким поддоменам проходить через php-fpm, где приложение php будет определять, какую базу данных открывать по определенному поддомену. Поэтому clientA.mydomain.com clientB.mydomain.com должны просто проходить через php, и приложение будет знать, к какой базе данных подключаться.

Я искал и нашел решения для перенаправления поддоменов на отдельные сайты, но мне нужно разрешить всем поддоменам доступ к одному сайту и обрабатывать так, как это делает localhost.

Это работает нормально с использованием localhost или 127.0.0.1, но когда я пытаюсь использовать url DNS, сайт перестает входить в систему, и все вызовы ajax перестают работать. Похоже, что переменные сеанса перестают передаваться обратно. Отображается страница входа, и неверный пароль покажет эту ошибку, поэтому я знаю, что сайт взаимодействует с правильной базой данных, но в журнале не отображаются какие-либо ошибки или ответы 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;
    }
}

Мне пришлось многое удалить, чтобы отправить вопрос.

При использовании localhost или 127.0.01 с той же конфигурацией вход в систему работает, ajax отвечает, и сайт загружает главную страницу, как и ожидалось.

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&

При использовании записи URL, которую я создал в своем файле хоста для тестирования, похоже, что js и ajax не работают с использованием 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

Заранее спасибо.

решение1

@MichaelHampton был прав, я пробовал несколько вещей, заметил, что во время перенаправлений создавались новые сеансы, из-за чего система продолжала приземляться на странице входа. В приложении есть внутренняя настройка, которая работает с кросс-доменными файлами cookie, и когда я ее отключил, сайт начал работать с использованием доменного URL. Поскольку я нахожусь в стадии тестирования, я использую только http, а не https.

Связанный контент