Score:0

Nginx php-fpm ในปัญหาเดสก์ท็อป Docker

ธง it

ฉันมี 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

ขอบคุณล่วงหน้า.

Michael Hampton avatar
cz flag
ทำไมคุณถึงเชื่อว่านี่เป็นปัญหา nginx ดูเหมือนว่าจะมีปัญหากับแอปพลิเคชัน ไปสนทนากับผู้พัฒนา
WillyK avatar
it flag
ส่วนหนึ่งเป็นเพราะแอปและการกำหนดค่าทำงานได้ดีภายใต้ IIS และ php-cgi ฉันได้ติดตั้งและกำหนดค่าแอปนี้มาหลายปีด้วยวิธีนี้ตอนนี้เรากำลังดำเนินการคอนเทนเนอร์แอปและใช้ linux, nginx และ php-fpm localhost ทำงานได้ดีและเมื่อคุณแนะนำ URL จริงลงในส่วนผสม ทั้งหมดนี้อาจใช้งานได้ใน AWS และอาจเป็นปัญหาเกี่ยวกับเดสก์ท็อปนักเทียบท่า แต่ฉันไม่แน่ใจ ขอบคุณ
Score:1
ธง it

@MichaelHampton ถูกต้อง ฉันลองหลายอย่างแล้วสังเกตว่ามีการสร้างเซสชันใหม่ระหว่างการเปลี่ยนเส้นทางซึ่งทำให้ระบบยังคงไปอยู่ที่หน้าเข้าสู่ระบบ มีการตั้งค่าภายในในแอปที่เกี่ยวข้องกับคุกกี้ข้ามโดเมน และเมื่อฉันปิดการตั้งค่านั้น ไซต์จะทำงานโดยใช้ URL ของโดเมน เนื่องจากฉันกำลังทดสอบ ฉันจึงใช้เฉพาะ http ไม่ใช่ https

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา