ฉันมี nginx และ php-fpm ทำงานในคอนเทนเนอร์เดียวบนเดสก์ท็อป Docker สำหรับ Windowsฉันเป็นไอทีและไม่ใช่นักพัฒนาดังนั้นโปรดโง่ลงสำหรับฉัน
ฉันพยายามกำหนดค่าให้ทำงานไม่สำเร็จ ฉันต้องสามารถอนุญาตให้หลายโดเมนย่อยส่งผ่านไปยัง php-fpm โดยที่แอป php จะกำหนดฐานข้อมูลที่จะเปิดตามโดเมนย่อยเฉพาะ
ดังนั้น
ลูกค้าA.mydomain.com
ลูกค้าB.mydomain.com
ทั้งหมดควรจะผ่านไปยัง php และแอพจะรู้ว่าฐานข้อมูลใดที่จะเชื่อมต่อกับ
ฉันได้ค้นหาและพบวิธีแก้ปัญหาในการเปลี่ยนเส้นทางโดเมนย่อยไปยังไซต์ที่แยกจากกัน แต่ฉันต้องอนุญาตโดเมนย่อยทั้งหมดไปยังไซต์เดียวและดำเนินการเหมือนที่ localhost ทำ
ใช้งานได้ดีโดยใช้ localhost หรือ 127.0.0.1 แต่เมื่อฉันพยายามใช้ dns url ไซต์จะหยุดเข้าสู่ระบบและการโทร ajax ทั้งหมดหยุดทำงาน ดูเหมือนว่าตัวแปรเซสชันจะหยุดส่งกลับ
หน้าเข้าสู่ระบบแสดงขึ้น และรหัสผ่านที่ล้มเหลวจะแสดงข้อผิดพลาดนั้น ดังนั้นฉันจึงรู้ว่าไซต์กำลังสื่อสารกับฐานข้อมูลที่เหมาะสม แต่บันทึกไม่แสดงข้อผิดพลาดหรือการตอบสนองของ ajax
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ชื่อเซิร์ฟเวอร์ _;
# ฉันได้ลอง server_name *.mydomain.com และ server_name .mydomain.com แล้ว ซึ่งอันหลังให้ผลลัพธ์เหมือนกับการกำหนดค่าปัจจุบันนี้
รูท /usr/share/nginx/html;
ปิด server_tokens;
ดัชนี index.php index.html index.htm;
ชุดอักขระ utf-8;
# เพิ่มการบันทึก stdout
ข้อมูล error_log /dev/stdout;
access_log /dev/stdout;
ที่ตั้ง / {
try_files $uri $uri/ /index.php?$args;
}
ตำแหน่ง ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass ยูนิกซ์:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
รวม fastcgi_params;
}
}
ฉันต้องลบจำนวนมากเพื่อส่งคำถาม
การใช้ localhost หรือ 127.0.01 ด้วยการกำหนดค่าเดียวกัน การเข้าสู่ระบบใช้งานได้ ajax กำลังตอบสนอง และไซต์โหลดหน้าหลักตามที่คาดไว้
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "POST /login.php HTTP/1.1" 302
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "GET / HTTP/1.1" 200
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "GET /framework.js?version=
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "รับ /resources/all.css
192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "รับ /resources/js/pdfjs/pdf.js
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "GET /app.js?version=2021
nginx stdout | 192.168.80.1 - - [08/ก.ย./2021:13:23:00 +0000] "รับ /resources/images/login_loader_logo.gif
192.168.80.1 - - [08/ก.ย./2021:13:23:01 +0000] "รับ /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
ขอบคุณล่วงหน้า.