ฉันมี Dockerfile ต่อไปนี้:
จาก nginx
RUN apt-รับการปรับปรุง
RUN apt-get install python3 python3-pip fcgiwrap -y
นักเทียบท่า-compose.yml:
รุ่น: '3.3'
บริการ:
จิงซ์:
สร้าง: ./data-nginx/.
ชื่อคอนเทนเนอร์: nginx
รีสตาร์ท: เสมอ
พอร์ต:
- "80:80"
- "443:443"
เครือข่าย:
- เว็บเซิร์ฟเวอร์
ปริมาณ:
- ./data-nginx/conf.d/:/etc/nginx/conf.d/
- ./data-nginx/fastcgi.conf:/etc/nginx/fastcgi.conf
- ./data-nginx/proxy.conf:/etc/nginx/proxy.conf
- ./data-nginx/mime.types:/etc/nginx/mime.types
- ./data-nginx/fcgiwrap.conf:/etc/nginx/fcgiwrap.conf
- ./www:/var/www
dafault.conf ของ nginx:
เซิร์ฟเวอร์ {
ฟัง 80;
ชื่อเซิร์ฟเวอร์ _;
ราก /var/www;
ดัชนี index.html index.htm;
ที่ตั้ง / {
try_files $uri $uri/ =404;
}
รวม fcgiwrap.conf;
}
และ fcgiwrap.conf:
ตำแหน่ง /cgi-bin/ {
gzip ปิด;
ราก /var/www;
fastcgi_pass ยูนิกซ์:/run/fcgiwrap.socket;
รวม /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
}
ใน /var/www/cgi-bin/ ฉันมี test.py:
#!/usr/bin/python3
พิมพ์ ("ทดสอบ")
เมื่อตอนนี้ฉันไปที่ http://localhost/cgi-bin/test.py
ฉันเข้าใจ:
[ข้อผิดพลาด] 31#31: *1 การเชื่อมต่อ() ไปยังยูนิกซ์:/run/fcgiwrap.socket ล้มเหลว (111: การเชื่อมต่อถูกปฏิเสธ) ขณะเชื่อมต่อกับอัปสตรีม ไคลเอ็นต์: 172.18.0.1 เซิร์ฟเวอร์: _ คำขอ: "GET /cgi- bin/test.py HTTP/1.1", อัปสตรีม: "fastcgi://unix:/run/fcgiwrap.socket:", โฮสต์: "localhost"
สิ่งที่ฉันต้องการทำให้สำเร็จคือการเรียกใช้ python บนโฮสต์ (ในเครื่อง) จากเว็บไซต์โดยกดปุ่ม