ฉันมี nginx และ php-fpm ทำงานบน Docker เมื่อใช้ชื่อโฮสต์ของระบบ Docker ของฉัน (docker1.freekb.net) หน้า phpinfo.php จะแสดงในเบราว์เซอร์ ดังนั้นฉันจึงรู้ว่าฉันได้กำหนดค่า nginx และ php-fpm อย่างถูกต้องเพื่อให้บริการหน้า PHP นี่คือบล็อกเซิร์ฟเวอร์ใน /etc/nginx/conf.d/default.conf คำขอจาก nginx บนพอร์ต 80 จะถูกส่งต่อไปยัง PHP บนพอร์ต 9000
เซิร์ฟเวอร์ {
ฟัง 80;
server_name stage.freekb.net;
รูท /var/www/stage;
ดัชนี index.html phpinfo.php;
ที่ตั้ง / {
try_files $uri $uri/ /index.html;
}
ตำแหน่ง ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index phpinfo.php;
รวม fastcgi_params;
}
}
ฉันมีการตั้งค่า HAProxy เพื่อส่งต่อคำขอไปยัง nginx นี่คือบล็อกการฟังของฉันใน /etc/haproxy/haproxy.cfg เมื่อผมไป http://haproxy.freekb.net/index.htmlหน้าต้อนรับ nginx ปรากฏขึ้น ดังนั้นฉันจึงรู้ว่า HAProxy สามารถส่งต่อคำขอไปยัง nginx ได้
อย่างไรก็ตามเมื่อฉันไปที่ http://haproxy.freekb.net/phpinfo.php, phpinfo.php ถูกดาวน์โหลดไปยังเครื่องพีซีของฉัน ฉันสงสัยว่านี่หมายความว่ามีบางอย่างผิดปกติกับ fastcgi ฉันไม่แน่ใจว่าต้องเปลี่ยนอะไรเพื่อให้หน้า PHP แสดงในเบราว์เซอร์เมื่อใช้ HAProxy
ฟัง nginx
ผูก *:80
โหมด tcp
วงเวียนสมดุล
ตรวจสอบเซิร์ฟเวอร์ nginx1 docker1.freekb.net:80