记录在部署一个nginx fastcgi 项目时失败, fastcgi 通过unix socket 通讯
这是一个flask 项目, 使用flup创建的fastcgi
1 | #!/usr/bin/env python |
这里直接说明结果, socket 文件不能创建在/tmp/ 或者 /vat/tmp 目录。
nginx 错误配置
1 | location / { try_files $uri @myflask; } |
connect() to unix:/tmp/fcgi.sock failed (2: No such file or directory) while connecting to upstream
1 |
|
location / { try_files $uri @myflask; }
location @myflask {
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_NAME "";
fastcgi_pass unix:/var/sockets/myflask-fcgi.sock;
}
1 |
|
cgi 的定义是 common gateway interface, 是一个协议。 fastcgi,uwcgi都是升级版或者变种。
flup实现了cgi的服务程序,也就是可以用来解析脚本(python php 等等),提供web服务。
1 |
|
location / {
proxy_pass https://localhost:8080
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
access_log /var/log/nginx/access.log my_tracking;
}
如过是python 就需要监听某个端口,这种是不稳定的。 不适合生产模式下使用。