У меня есть 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.
сервер {
слушать 80 default_server;
имя сервера _;
# Я пробовал имя_сервера *.mydomain.com и имя_сервера .mydomain.com, последнее дает те же результаты, что и эта текущая конфигурация.
корень /usr/share/nginx/html;
server_tokens отключены;
индекс index.php index.html index.htm;
кодировка utf-8;
# Добавить логирование стандартного вывода
error_log /dev/stdout информация;
журнал_доступа /dev/stdout;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
расположение ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
включить fastcgi_params;
}
}
Мне пришлось удалить многое, чтобы задать вопрос.
Используя localhost или 127.0.01 с той же конфигурацией, вход в систему работает, ajax отвечает, и сайт загружает главную страницу, как и ожидалось.
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "POST /login.php HTTP/1.1" 302
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET / HTTP/1.1" 200
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET /framework.js?version=
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET /resources/all.css
192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET/resources/js/pdfjs/pdf.js
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET /app.js?version=2021
стандартный вывод nginx | 192.168.80.1 - - [08/сен/2021:13:23:00 +0000] "GET /resources/images/login_loader_logo.gif
192.168.80.1 - - [08/сен/2021:13:23:01 +0000] "GET /ajax.php?_dc=163110738
192.168.80.1 - - [08/сен/2021:13:23:02 +0000] "POST /ajax.php HTTP/1.1" 200
192.168.80.1 - - [08/сен/2021:13:23:02 +0000] "GET /ajax.php?_dc=1631107382410&
При использовании записи URL-адреса, которую я создал в своем файле хоста для проверки, кажется, что js и ajax не работают с использованием URL-адреса.
192.168.96.1 - - [08/сен/2021:13:29:45 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/сен/2021:13:29:45 +0000] "GET /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/сен/2021:13:29:46 +0000] "GET/HTTP/1.1" 302
192.168.96.1 - - [08/сен/2021:13:29:46 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/сен/2021:13:29:47 +0000] "GET /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/сен/2021:13:29:57 +0000] "POST /login.php HTTP/1.1" 302
192.168.96.1 - - [08/сен/2021:13:29:57 +0000] "GET/HTTP/1.1" 302
192.168.96.1 - - [08/сен/2021:13:29:57 +0000] "GET /login.php HTTP/1.1" 200
192.168.96.1 - - [08/сен/2021:13:29:58 +0000] "GET /showClientLogo.php HTTP/1.1" 200
Заранее спасибо.