问题标签 [spawn-fcgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5162 浏览

nginx - spawn-fcgi:孩子退出:13

.sock 已创建,但文件大小为 0 字节。代码 13 代表什么?

0 投票
1 回答
1167 浏览

valgrind - 带有 spawn-fcgi 的 callgrind 不创建分析数据

我需要分析我的以 spawn-fcgi 开头的 c++ 应用程序。我尝试使用 callgrind,但 KCachegrind 中的 callgrind 输出未显示我的应用程序的任何信息。

此命令创建两个文件 10012 和 10013,但第二个文件为空。第一个文件包含位置 spawn-fcgi、ld-2.*.so amd libc 的功能信息。

请建议正确的选项来获取我的应用程序的分析信息。

0 投票
1 回答
446 浏览

windows - 代理到 FastCGI 时,nginx 没有生成工作人员

我在使用 nginx 和 FastCGI 时遇到了一些问题。我正在使用 Windows 7,并且已成功编译/安装/设置以下项目:

  • nginx服务器
  • FastCGI 库
  • spawn-fcgi-win32.exe

我编写了一个简单的 FastCGI 应用程序,它只是将消息发送回网络服务器。这是代码的简化版本:

我产生了几个进程,spawn-fcgi-win32.exe一切正常:从网络浏览器访问我的应用程序返回了“hello”消息。

但是,为了检查并发性,我更改了我的应用程序如下:

然后,我在浏览器中打开了两个单独的选项卡并访问了我的应用程序。我希望两个选项卡在 10 秒后返回“hello”消息,但只有第一个选项卡在超时后返回它;第二个标签在 20 秒后完成。这是nginx的访问日志:

127.0.0.1 - 克劳迪 [25/Feb/2015: 17:45:16 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0)壁虎/20100101 火狐/35.0"

127.0.0.1 - 克劳迪 [25/Feb/2015: 17:45:26 +0100] "GET /foo.php HTTP/1.1" 200 3664 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0)壁虎/20100101 火狐/35.0"

请注意,尽管我大致在同一时间发送了请求,但 nginx 在 10 秒后“看到”了第二个请求。我的 nginx 配置文件设置了 4 个工作人员和每个工作人员 1024 个连接。为什么 nginx 不产生两个并发工作人员,每个请求一个?

顺便说一句,我已经通过将进程 ID 与 hello 消息一起转储来检查两个 FastCGI 进程是否正常工作。

谢谢

0 投票
1 回答
1265 浏览

nginx - nginx + spawn-fcgi 提供原始 cgi(二进制)文件内容(不执行它们)

我很难弄清楚为什么我的 nginx + spawn-fastcgi 提供原始二进制内容而不是执行它们并提供结果。

目标是使用 NginX 配置 Nagios Core 4.x。这方面有很多很棒的博客;但没有人阐明我的问题。

我目前正在使用 CentOS 6.6 NginX v1.0.15、spawn-fcgi v1.6.3 和 php (php-fpm) v5.4.30。

PHP 文件托管工作得很好(php-fpm),**它只是 spawn-fcgi 内容我遇到的问题是我负责提供 /cgi-bin/*.cgi 文件。这是我的 spwn-fcgi 环境:

我的 NginX 配置:

有问题的工具正在运行:

再说一遍,简而言之;这个配置“几乎”工作得很好,但是像https://monitor.mydomain.com/nagios/cgi-bin/status.cgi这样的请求会为内容提供服务:

还值得注意的是,我使用的SELinux(为 Nagios 编写了我自己的模块),但在解决此 cgi 问题之前已禁用它(所有 SELinux)。

你们能提供的任何建议都会很棒!TIA

0 投票
1 回答
84 浏览

fastcgi - 在 FastCGI 中使用 boost 日志

我正在尝试在我的 FastCGI 程序中使用 boost log,但看起来它们不能一起工作。

当我直接执行程序时,

./sample_log

我可以看到记录到文件中的日志消息。

当我使用 spawn-fcgi 启动程序时,

sudo spawn-fcgi -p 8000 -n sample_log

未记录任何消息。

这是我正在使用的简单程序:

0 投票
1 回答
1431 浏览

c++ - How to debug a Fast Common Gateway Interface (FCGI) program?

I encountered a problem that I don't known how to debug a FCGI program which written in C++ and based on fastcgi.

The program is managed by Lighttpd spawn-fcgi and called by nginx fastcgi module.

I wrote a shell script to restart spawn-cgi:

The program index.cgi was successfully built and just printf some strings to out stream.

And my configuration in nginx:

Now I am wroking on index.cgi, change some code (maybe with faulty logic). The program crashed and 502 Bad Gateway was returned in my browser.

It's hard for me to find out what is wrong in my program because the fcgi progam acts as a callback function of nginx. So I cannot press Debug button and bebug my program normally.

So how can I debug my program properly and conveniently?

0 投票
0 回答
484 浏览

c - spawn-fcgi 没有 nginx 或它的等价物,如何获得标准输出

我已经安装了 nginx 和 fastcgi。spawn-fcgi 有一个指向 C fcgi script 的参数spawn-fcgi -p 8000 -n __fastcgi。所有这些都按预期运行。

我希望能够在Hello World没有 nginx 的情况下获得类似的输出。最好在 C 中。我已经搜索过,但只出现了 nginx 结果。

寻找指针继续。

0 投票
0 回答
178 浏览

spawn-fcgi - Spawn-fcgi 在 Windows 上不起作用

我已经使用 cygwin 从此处提供的源代码为 Windows 构建 spawn-fcgi:https ://github.com/lighttpd/spawn-fcgi

我正在尝试使用 spawn-fcgi 运行 mapserver。在日志文件中它给出了spawn-fcgi: child spawned successfully: PID: 4920但是当我正在寻找具有此 PID 的进程时,没有进程。

我有hello_world示例来测试 spawn-fcgi 但这也不起作用。

0 投票
0 回答
323 浏览

perl - 无法在 nginx+fcgiwrap 上关闭 Perl CGI 脚本的缓冲

我有一个用 编写的遗留 Perl CGI 脚本CGI.pm,它通过 CGI 界面打印一些文本行来回复其进度。然后,它的旧客户端将逐行读取响应并执行任何操作。

由于缓冲问题,我无法设置 nginx 使其工作。

我的设置:

  1. CentOS 7 + EPEL
  2. yum install fcgi fcgi-devel spawn-fcgi
  3. fcgiwrap最近需要一个补丁来支持NO_BUFFERING环境变量,以关闭缓冲。这在 ServerFault的这个答案中有所描述。然而,令人费解的是:

    1. 该答案中链接的 debian 错误报告声称该补丁已被上游应用fcgiwrap,但上游github存储库中没有任何相关内容,除了从未回复过的未解决问题。反正补丁已经应用到debian包了,但是EPEL包不包含它,所以:
    2. git clone存储库
    3. debian_patches_add-environment-variable-NO_BUFFERING-to-disable-out.patch从上面的 debian bugreport应用。
    4. autoreconf -i && ./configure && make && make install
  4. 已配置span-fcgi,这是\etc\sysconfig\spawn-fcgi

  1. nginx为 fastcgi配置:

其他信息:

  1. perl 脚本就是$| = 1;这样做的,因为脚本本身不应该缓冲自己的输出。
  2. perl 脚本还发送HTTP 标头,这通常被称为禁用 nginx 缓冲所必需的,尽管在配置文件中X-Accel-Buffering: no不应该需要它。fastcgi_buffering off
  3. 通过使用netcat( nc -l 9001 > request.txt) 监听 9001 端口,我检查了nginx是否正确传递NO_BUFFERING了请求中的变量以及所有其他参数。
  4. 通过这样做cat request.txt | nc localhost 9001,我看到fcgiwrap了缓冲输出的原因:如果我在中途终止了生成的 cgi 进程,我将获得在那之前生成的所有输出。
  5. CGI 脚本已启动并且工作正常,否则只是客户端没有逐行接收数据(但我需要fastcgi_read_timeout 900s上面的行以避免超时)。
  6. 我不确定我是否完全理解fcgiwrap源代码,但补丁很简单:如果设置了环境变量,它只会FCGI_fflush在每次写入后调用。NO_BUFFERING但是,可以肯定的是,我替换unbuffered = !!getenv("NO_BUFFERING");unbuffered = 1;,但没有成功。

那么有人能发现我错过了什么吗?

0 投票
1 回答
51 浏览

c++ - 如何调试 spawn-fcgi 生成的 coredump 文件?

我的coredump文件由 shell 命令生成sudo spawn-fcgi fcgi-bin -a 0.0.0.0 -p 8089 &fcgi-bin由 c++ 命令g++ -g fcgiMain.cpp fcgiEnv.cpp -o fcgi-bin等编译以使用 nginx 部署,因为我们知道使用命令调试 coredump 文件gdb ./test_bin test_coredump,但现在我有两个 bin 程序spawn-fcgi和“fcgi-bin”,如果我使用命令gdb ./spawn-fcgi coredumpbt查看堆栈,然后它将看起来像这张图片

图片

所以任何人都可以告诉我如何处理这个核心转储文件,非常感谢!