Am următorul Dockerfile:
DE LA nginx
RUN apt-get update
RUN apt-get install python3 python3-pip fcgiwrap -y
docker-compose.yml:
versiunea: „3.3”
Servicii:
nginx:
build: ./data-nginx/.
container_name: nginx
reporniți: întotdeauna
porturi:
- „80:80”
- „443:443”
retele:
- server web
volume:
- ./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 al lui nginx:
Server {
asculta 80;
numele serverului _;
rădăcină /var/www;
index index.html index.htm;
Locație / {
try_files $uri $uri/ =404;
}
includ fcgiwrap.conf;
}
și fcgiwrap.conf:
locație /cgi-bin/ {
gzip off;
rădăcină /var/www;
fastcgi_pass unix:/run/fcgiwrap.socket;
includ /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
}
în /var/www/cgi-bin/ am test.py:
#!/usr/bin/python3
print("Test")
Când mă duc acum la http://localhost/cgi-bin/test.py
Eu iau:
[eroare] 31#31: *1 connect() to unix:/run/fcgiwrap.socket a eșuat (111: Conexiune refuzată) în timpul conectării la amonte, client: 172.18.0.1, server: _, cerere: „GET /cgi- bin/test.py HTTP/1.1”, în amonte: „fastcgi://unix:/run/fcgiwrap.socket:”, gazdă: „localhost”
Ceea ce vreau să realizez, este practic să rulez un python pe o gazdă (locală) de pe un site web prin apăsarea unui buton.