Am nginx și php-fpm care rulează într-un singur container pe desktopul Docker pentru Windows.Eu sunt IT și nu un dezvoltator, așa că vă rog să mă amuțiți.
Am încercat să fac o configurație să funcționeze fără succes. Trebuie să pot permite mai multor subdomenii să treacă la php-fpm, unde aplicația php va determina ce bază de date să deschidă după un anumit subdomeniu.
asa de
clientA.mydomain.com
clientB.mydomain.com
ar trebui să treacă doar prin php, iar aplicația va ști la ce DB să se conecteze.
Am căutat și am găsit soluții pentru a redirecționa subdomeniile către site-uri separate, dar trebuie să permit tuturor subdomeniilor să fie pe un singur site și să procesez așa cum face localhost.
Acest lucru funcționează bine folosind localhost sau 127.0.0.1, dar când încerc să folosesc o adresă URL dns, site-ul nu se mai conectează și toate apelurile ajax nu mai funcționează. Se pare că variabilele de sesiune nu mai sunt transmise înapoi.
Se afișează pagina de autentificare, iar o parolă eșuată va arăta acea eroare, așa că știu că site-ul comunică cu DB adecvat, dar jurnalul nu arată erori sau răspunsuri ajax.
Server {
asculta 80 default_server;
numele serverului _;
# Am încercat server_name *.mydomain.com și server_name .mydomain.com, acesta din urmă dă aceleași rezultate ca această configurație curentă.
root /usr/share/nginx/html;
server_tokens dezactivat;
index index.php index.html index.htm;
set de caractere utf-8;
# Adăugați înregistrarea stdout
error_log /dev/stdout info;
access_log /dev/stdout;
Locație / {
try_files $uri $uri/ /index.php?$args;
}
locație ~ \.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;
}
}
A trebuit să elimin multe pentru a trimite întrebarea.
Folosind localhost sau 127.0.01 cu aceeași configurație, autentificare funcționează, ajax răspunde și site-ul încarcă pagina principală așa cum era de așteptat.
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&
Când folosesc intrarea URL pe care am creat-o în fișierul meu gazdă pentru a testa, se pare că js și ajax nu funcționează folosind adresa 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
Mulțumesc anticipat.