标签: mod-proxy-fcgi

proxy_fcgi:error (70008)部分结果有效,但处理不完整。AH01075

我有一个服务器正在运行:

  • 乌班图16.04
  • 阿帕奇2.4.18
  • 工人-MPM
  • PHP 7.0.8-0ubuntu0.16.04.3
  • PHP-FPM
  • OPcache 7.0.8-0ubuntu0.16.04.3

在浏览器上有一个 ajax 脚本,每 5 秒向 php 文件发送一个查询,以更新数据库上的时间戳,该脚本在其他服务器上运行良好,但这里用户不多,它会记录以下错误:

[Mon Dec 05 09:11:39.575035 2016] [proxy_fcgi:error] [pid 7831:tid 140159538292480] (70008)部分结果有效,但处理不完整:[client 172.30.197.200:64422] AH01075:将请求分派到:时出错: (读输入大队),referer:http://10.200....file.php

我不知道它是什么以及如何修复它。我搜索了整个网络,但没有找到太多,任何提示将不胜感激。

编辑1:

我将错误模式切换为调试,错误的完整日志如下:

[Wed Dec 07 08:55:13.465599 2016] [authz_core:debug] [pid 5461:tid 139687427467008] mod_authz_core.c(809): [client 172.31.42.163:54432] AH01626: authorization result of Require all granted: granted, referer: http://10.200.200.214/sala.php?sala=Unica

[Wed Dec 07 08:55:13.465613 2016] [authz_core:debug] [pid 5461:tid 139687427467008] mod_authz_core.c(809): [client 172.31.42.163:54432] AH01626: authorization result of <RequireAny>: granted, referer: http://10.200.200.214/sala.php?sala=Unica

[Wed Dec 07 08:55:13.465634 2016] …

php-fpm apache-2.4 mod-proxy-fcgi

7
推荐指数
2
解决办法
3万
查看次数

Apache PHP-FPM 代理启用重用 = on 时出现奇怪的响应

启用后<Proxy ... enablereuse=on max=10>我开始收到奇怪的响应。刷新当前页面时,主请求加载不同的响应;例如空白页面、针对单独客户端的响应或来自请求页面上 CSS 文件的 404 响应。

删除enablereuse,修复了奇怪的响应,但阻止了来自同一用户的并发请求,这意味着每个请求都是单独提供的。

例如:在同一虚拟主机域上打开两个不同 URL 的浏览器选项卡,如果第一个请求的页面需要 5 秒才能加载,则在第一个选项卡完成之前不会加载第二个选项卡。

我试图通过允许同一客户端以并发非阻塞方式同时执行多个请求来防止这种情况。

服务器环境

CentOS 6.10 x64
php 5.6.37 Remi
Apache 2.4.33 IUS
Run Code Online (Sandbox Code Playgroud)

MPM 事件配置

<IfModule mpm_event_module>
    ServerLimit              100
    StartServers             4
    ThreadLimit              64
    MaxRequestWorkers        100
    MinSpareThreads          25
    MaxSpareThreads          75
    ThreadsPerChild          25
    MaxConnectionsPerChild   1000
    ListenBacklog       511
</IfModule>
Run Code Online (Sandbox Code Playgroud)

虚拟主机配置(4 中的 1 - 除 IP 地址、UDS 和服务器名称外均相同)

<VirtualHost 192.168.1.71:443>
    ServerName example.com:443
    DocumentRoot /home/example/example.com
    <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateFile /etc/httpd/ssl/certs/example.crt
        SSLCertificateKeyFile /etc/httpd/ssl/private/example.key
        SSLCertificateChainfile /etc/httpd/ssl/certs/example.ca-bundle
        <IfModule mod_setenvif.c>
            SetEnvIf …
Run Code Online (Sandbox Code Playgroud)

php-fpm apache-2.4 mod-proxy-fcgi

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

将 ProxyPassMatch 用于 FastCGI,导致端口 9000 上的连接被拒绝

我不确定这是 php、apache 还是 iptables 配置问题,但在尝试访问.php文件时收到以下错误。如果您需要更多信息来帮助我诊断,请告诉我,我不知道接下来要检查什么。谢谢你。

error.log

[Thu May 08 16:43:15.392784 2014] [proxy:error] [pid 23112] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed
[Thu May 08 16:43:15.392891 2014] [proxy_fcgi:error] [pid 23112] [client 74.164.254.206:52788] AH01079: failed to make connection to backend: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

我按照本指南和运行的 PHP 5.5.9 和 Apache 2.4.7

我确实加载了mod_proxymod_proxy_so模块:

# grep LoadModule /etc/apache2/apache2.conf
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so 
Run Code Online (Sandbox Code Playgroud)

这是 ProxyPassMatch 指令:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/$1
Run Code Online (Sandbox Code Playgroud)

我还尝试将 UDS 与以下指令一起使用,但 apache 配置测试抱怨绝对 …

mod-proxy fcgi apache-2.4 mod-proxy-fcgi

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

在使用 mod_proxy_fcgi 和 PATH_INFO 时重写 URL 最终会出现错误 404

我在 Apache 2.4.25 上有一个虚拟主机,PHP-FPM 7.1.4 通过 mod_proxy_fcgi 连接,如下所示:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /srv/www/example.com

    <Directory /srv/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    <FilesMatch ".+\.ph(p[3457]?|t|tml)$">
        SetHandler "proxy:unix:/run/php/example.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

大多数应用程序在此设置下都能完美运行,但有一个应用程序使用 PATH_INFO 来提取请求。该应用程序在其 .htaccess 中有类似的内容:

RewriteEngine On

RewriteCond $1 ^index\.php
RewriteRule ^(.*)$ - [PT,L]

RewriteRule ^(.*)$ index.php/$1 [PT,L]
Run Code Online (Sandbox Code Playgroud)

简单地说,所有不是的东西都index.php应该作为路径传递给它。访问 URL http://example.com/index.php/test可以正常工作并按[PATH_INFO] => /test预期显示,但访问http://example.com/test 会

AH01071: Got error 'Primary script unknown\n'
Run Code Online (Sandbox Code Playgroud)

LogLevel trace6mod_rewrite 和 mod_proxy_fcgi 的设置表明重定向已正确完成,并且正确的路径也传递给 PHP-FPM。

/index.php/test 的跟踪:

[Sat Apr …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite php-fpm apache-2.4 mod-proxy-fcgi

3
推荐指数
1
解决办法
3085
查看次数

authz_core 不断拒绝访问

我已经根据本教程( https://wiki.apache.org/httpd/PHP-FPM )或多或少配置了一个网络服务器,但我无法让 PHP 工作。HTML 文件可以正常使用。我收到以下错误消息:

mod_authz_core.c(802): [client <myip>:36570] AH01626: authorization result of Require all denied: denied
mod_authz_core.c(802): [client <myip>:36570] AH01626: authorization result of <RequireAny>: denied
127.0.0.1 [client <myip>:36570] AH01630: client denied by server configuration: proxy:fcgi://127.0.0.1:9000/var/www/html/test.php
Run Code Online (Sandbox Code Playgroud)

这是我的 PHP 文件:

www@<server>:/var/www/html$ ls -l
-rw-rw----  1 www www-data    26 Sep  6 09:14 test.php
Run Code Online (Sandbox Code Playgroud)

如您所见,该文件属于“www”。网络服务器和“php-fpm”作为“www-data”运行。

这是“apache.conf”的基本配置:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all …
Run Code Online (Sandbox Code Playgroud)

php-fpm apache-2.4 mod-proxy-fcgi

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