标签: fastcgi

在从 Apache 调用的 PHP-FPM 中设置正确的 REMOTE_ADDR

我们希望在 Apache 服务器上从 mod_php 切换到 fastCGI + PHP-FPM。

我们一切就绪并正在工作,除了一件事:

$_SERVER['REMOTE_ADDR'] 中的值始终是 127.0.0.1,而不是客户端的 IP。有什么方法可以配置服务器将此变量设置为客户端真实IP吗?

我们在 X-Forwarded-For 标头中有客户端真实 IP(从代理传递)

基本上我们需要 Apache 替代 nginx 配置:

fastcgi_param REMOTE_ADDR $http_x_forwarded_for;
Run Code Online (Sandbox Code Playgroud)

(如此处所述,Nginx 将 REMOTE_ADDR 替换为 X-Forwarded-For

php apache ip fastcgi nginx

6
推荐指数
2
解决办法
1万
查看次数

nginx fastcgi_pass 是否支持变量?

我想在 nginx 和 fastcgi_pass 中使用动态主机解析

fastcgi_pass $wphost:9000;在 conf 中设置时,nginx 显示错误 [error] 7#7: *1 wordpress.docker could not be resolved (3: Host not found),

但是当我设置fastcgi_pass wordpress.docker:9000;它时 它正在工作,除了在 wordpress 重新启动后 nginx 仍然指向旧 IP 的事实。

server {
  listen [::]:80;
  include /etc/nginx/ssl/ssl.conf;

  server_name app.domain.*;

  root /var/www/html;
  index index.php index.html index.htm;

  resolver 172.17.42.1 valid=60s; 
  resolver_timeout 3s;

  location / {
    try_files $uri $uri/ /index.php?q=$uri&$args; ## First attempt to serve request as file, then as directory, then fall back to index.html
  } …
Run Code Online (Sandbox Code Playgroud)

php fastcgi nginx

6
推荐指数
1
解决办法
1415
查看次数

如何禁用 apache2 和 mod_proxy_fcgi 的缓冲?

我在 debian Jessie 上使用 mod_proxy_fcgi 和 apache 2.4,我的 C++ 应用程序使用 libfcgipp 执行 ServerSentEvents。

我的问题是,那个 apache 仍然缓冲我的响应数据。我通过使用 wireshark 确认它没有被 libfcgipp 库缓冲:通过 启动 fcgi 应用程序后spawn-fcgi,数据会尽快发送到 apache 网络服务器。但是在我的浏览器中(我用于测试,稍后会有一个 C++ 客户端)它只在我“杀死”/关闭服务器应用程序中的发送请求后才会显示。

所以我假设我需要禁用 apache 或 mod_proxy_fcgi(或两者)的缓冲。但是我找不到有关如何执行此操作的适当文档。

apache buffer fastcgi mod-proxy apache2.4

6
推荐指数
2
解决办法
4999
查看次数

fastCgi 请求超时与 PHP max_execution_time

我在 Windows Server 2008 计算机的 IIS 7.5 上运行 PHP。

目前我fastCgi request timeout在 IIS 中设置为 90 秒。

max_execution_timeinphp.ini设置为 30。

那样的话会发生什么呢?脚本是否会崩溃,但请求会保留在请求队列中,直到达到 90 秒后完成?

在此输入图像描述

php iis fastcgi

6
推荐指数
1
解决办法
9712
查看次数

如何防止 Nginx 从 FastCGI/PHP-FPM 捕获错误?

我在 PHP 5.6.20 前面通过 FastCGI (PHP-FPM) 使用 Nginx 1.8.1 作为反向代理,我发现来自 PHP 的所有通知/警告/错误日志也在 Nginx 中记录为错误。有什么办法可以防止此类日志传播到 Nginx 的日志?我希望他们只登录 PHP 的日志文件。

下面是一个例子:

[2016 年 4 月 29 日 22:23:10] 警告:[pool www] child 20 对 stderr 说:“注意:PHP 消息:PHP 警告:phpinfo():依赖系统的时区设置是不安全的。你需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种但仍然收到此警告,则很可能是时区标识符拼错了。我们现在选择了时区“UTC”,但请设置 date.timezone 以选择您的时区。在第 2 行的 /opt/web-app/index.php 中”

相同的日志作为错误添加到 Nginx 的日志文件中:

2016/04/29 22:23:10 [error] 6#0: 1 FastCGI sent in stderr: "PHP message: PHP Warning: phpinfo(): 依赖系统的时区设置是不安全的。你是*必需的使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能是您拼错了时区标识符。我们现在选择了时区“UTC”,但请设置 date.timezone 以选择您的时区。在第 2 行的 /opt/web-app/index.php 中”,同时从上游读取响应标头,客户端:172.18.0.1,服务器:,请求:“GET /favicon.ico HTTP/ 1.1", 上游: "fastcgi://172.18.0.2:9000", 主机: "localhost:8080", …

php fastcgi nginx

6
推荐指数
2
解决办法
1632
查看次数

调试托管在 IIS + WFastCGI 上的 Flask 应用程序

我在 Flask 上开发了一个 REST API 并按照以下说明部署在 IIS 上 https://medium.com/@bilalbayasut/deploying-python-web-app-flask-in-windows-server-iis-using-fastcgi-6c1873ae0ad8

有没有办法通过 WFastCGI 调试托管在 IIS 上的 Flask 应用程序?

目前它只显示 {"message": "Internal Server Error"} 如果有任何错误。(这完全没有帮助)

我怎样才能为此检索错误日志?

请不要标记为重复,提供的链接没有帮助。我使用了 WFastCGI 和 IIS,因此我没有明确运行“烧瓶运行”的东西

windows iis fastcgi flask

6
推荐指数
0
解决办法
782
查看次数

通过持久性来最小化脚本启动时间的方法?

Raku众所周知,启动时间非常


在我的机器上(旧机器,但我拥有的最现代的机器):

time raku -e 'put "Hello, World!"'
495.67 - 567.02 毫秒
(第一次发射 1.53 秒)

time perl -E 'say "Hello, World!"'
13.63 - 19.51 毫秒

time sh -c 'echo "Hello, World!"'
4.31 - 6.88 毫秒

c

#include <stdio.h>

int main(void) {
    puts("Hello, World!");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

time ./hello
5.03 - 7.67 毫利斯
time clang hello.c -o hello(编译)
126.39 - 195.66 毫利斯


Raku确实拥有许多内置的小技巧,这使它变得很重。
然而,有时您需要一个相当简单的脚本,并且您更喜欢Raku它的优雅,但等待的启动时间会带来不满,并且您不会选择Raku下一个简单的脚本。

有什么办法可以帮助它吗?
就像启动Raku一次并保持运行,并使其处理所有Raku脚本,无论有没有模块,无论大小,等等raku …

performance time fastcgi startup raku

6
推荐指数
2
解决办法
275
查看次数

Rust 客户端发出 FCGI 请求的问题

我目前正在与一些同事合作开发一个小型个人项目,该项目需要 FastCGI 请求,目前这是我们的代码:


#![allow(non_snake_case)]
use std::os::unix::net::{UnixStream};
use std::io::{Read, Write};

fn main() {
    // here we create the request body, which should be sent in the FCGI_STDIN record
    let data = "foo=bar";

    // here we define the constants that FastCGI needs
    const FCGI_VERSION_1: u8    = 1;

    const FCGI_BEGIN_REQUEST:u8 = 1;
    const FCGI_END_REQUEST: u8  = 3;
    const FCGI_STDIN: u8        = 5;
    const FCGI_STDOUT: u8       = 6;
    const FCGI_STDERR: u8       = 7;

    const FCGI_RESPONDER: u16  = 1;

    const FCGI_PARAMS: u8 = 4;

    // …
Run Code Online (Sandbox Code Playgroud)

php fastcgi rust

6
推荐指数
1
解决办法
341
查看次数

如何将mod_perl中的Perl代码移植到FastCGI?

我们有一个支持的现有Perl应用程序mod_perl.但是,我们的新主机(Dreamhost)不支持mod_perl,只支持FastCGI; 因此需要港口.

现有代码不使用任何Apache特定的东西,只是正常的Perl代码以可接受的方式编写mod_perl.

阅读文档和在线教程,似乎添加FastCGI支持涉及将现有代码包装在特定类型的循环中.以下是最常用的骨架代码:

A.使用FCGI

use FCGI;
while (FCGI::accept >= 0)
{
    #Run existing code.
}
Run Code Online (Sandbox Code Playgroud)

B.使用CGI :: Fast

use CGI::Fast
while (my $cgi = CGI::Fast->new()) 
{  
   #Run existing code.
}
Run Code Online (Sandbox Code Playgroud)

次要问题:

  1. 方法AB是否等同于添加FastCGI支持?
  2. 如果AB不同,那么使用一个和另一个的利弊是什么呢?
  3. mod_perlPortCigI 移植到FastCGI 时,是否有任何应该知道的最佳实践或问题?

谢谢.

perl fastcgi mod-perl

5
推荐指数
1
解决办法
1559
查看次数

Windows Azure WebRole中的PHP53_via_FastCGI错误0xc0000005

我不知道为什么,但是在搜索bug之后6小时,我无法识别它.当包含动态文件路径时,它似乎在框架代码的深处.

当我尝试在不同的地方进行exctly相同的include调用时,不会出现IIS错误.

phpinfo()工作正常,我的应用程序没有.

IIS错误:

HTTP错误500.0 - 内部服务器错误D:\ Program Files(x86)\ PHP\v5.3\php-cgi.exe - FastCGI进程意外退出

模块FastCgiModule通知ExecuteRequestHandler处理程序PHP53_via_FastCGI错误代码0xc0000005

IIS 7.5上的PHP 5.3.9 nts

我已经有很多关于这个错误的文章,没有任何帮助.这很有趣,因为昨天一切都很好.

也许你可以给我一个有用的暗示.

编辑:

我似乎找到了问题的原因:

1.部署到Azure云后,某些进程会将php.ini的完整副本添加到现有php.ini文件的末尾.所以我从php-cgi得到了很多警告.

- >这是由启动任务完成的.我想知道为什么任务现在增强了所有内容而不是像以前一样覆盖.

2.我看到有一个新的PHP版本的Windows 5.3.9(生成日期2012年1月10日16:30:15).您也可以通过MS Web Platform Installer找到它.我目前使用5.3.8(建造日期2011年8月23日12:11:54).我在程序文件和我的WebRole文件夹中都有它.通常,启动任务将我的版本从WebRole文件夹中取出,但新版本不会.当我通过RDP更改路径时,everthings运行良好.

现在我只需要找到一种方法来强制Azure在我的包中使用PHP.

php windows fastcgi azure iis-7.5

5
推荐指数
0
解决办法
3970
查看次数

标签 统计

fastcgi ×10

php ×6

nginx ×3

apache ×2

iis ×2

windows ×2

apache2.4 ×1

azure ×1

buffer ×1

flask ×1

iis-7.5 ×1

ip ×1

mod-perl ×1

mod-proxy ×1

performance ×1

perl ×1

raku ×1

rust ×1

startup ×1

time ×1