You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2012/05/28 05:23:26 UTC
[Bug 53305] New: 404 errors when adding query string in a balancer
setup with mod_rewrite and mod_proxy_fcgi
https://issues.apache.org/bugzilla/show_bug.cgi?id=53305
Priority: P2
Bug ID: 53305
Assignee: bugs@httpd.apache.org
Summary: 404 errors when adding query string in a balancer
setup with mod_rewrite and mod_proxy_fcgi
Severity: normal
Classification: Unclassified
OS: Windows NT
Reporter: jdr@alexanderinteractive.com
Hardware: PC
Status: NEW
Version: 2.4.1
Component: mod_rewrite
Product: Apache httpd-2
I seem to be encountering an issue when trying to use mod_proxy_fcgi in a
balancer setup via mod_rewrite.
With this rewrite rule:
RewriteRule ^/?(.*\.php(/.*)?)$
fcgi://localhost:9000/usr/local/home/magento/app/current/$1 [P,L]
Everything behaves as expected.
With this:
<Proxy balancer://magento>
BalancerMember fcgi://localhost:9000
</Proxy>
RewriteRule ^/?(.*\.php(/.*)?)$
balancer://magento/usr/local/home/magento/app/current/$1 [P,L]
I get 404s when adding query strings to the page name. I used wireshark to look
at the requests, here are some headers worth noting:
URL requested is /testq.php?test=test
NO BALANCER (working)
SCRIPT_FILENAMEproxy:fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php
QUERY_STRINGtest=test
REQUEST_URI/testq.php?test=test
SCRIPT_NAME/testq.php3
BALANCER (not working)
SCRIPT_FILENAMEproxy:balancer://magento/usr/local/home/magento/app/current/testq.php?test=test
QUERY_STRINGtest=test
REQUEST_URI/testq.php?test=test
SCRIPT_NAME
PATH_INFO/usr/local/home/magento/app/current/testq.php
PATH_TRANSLATEDproxy:balancer://magento/usr/local/home/magento/app/current/usr/local/home/magento/app/current/testq.php/usr/local/home/magento/app/current/usr/local/home/magento/app/current/testq.php
This COULD be related to issue
https://issues.apache.org/bugzilla/show_bug.cgi?id=51077 but I'm not positive.
That PATH_TRANSLATED looks a bit funky, is that right?
-----------------
Here are some output from logs as well. First, mod_proxy_fcgi
NO BALANCER:
[Mon May 28 01:59:01.528602 2012] [proxy_fcgi:trace1] [pid 32007:tid
140105644062464] mod_proxy_fcgi.c(90): [client xxx.xxx.xxx.xxx:50665]
canonicalising URL
//localhost:9000/usr/local/home/magento/app/current/testq.php
[Mon May 28 01:59:01.528713 2012] [proxy_fcgi:debug] [pid 32007:tid
140105644062464] mod_proxy_fcgi.c(120): [client xxx.xxx.xxx.xxx:50665] AH01060:
set r->filename to
proxy:fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php
[Mon May 28 01:59:01.528806 2012] [proxy_fcgi:debug] [pid 32007:tid
140105644062464] mod_proxy_fcgi.c(944): [client xxx.xxx.xxx.xxx:50665] AH01076:
url: fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php
proxyname: (null) proxyport: 0
[Mon May 28 01:59:01.528827 2012] [proxy_fcgi:debug] [pid 32007:tid
140105644062464] mod_proxy_fcgi.c(954): [client xxx.xxx.xxx.xxx:50665] AH01078:
serving URL //localhost:9000/usr/local/home/magento/app/current/testq.php
[Mon May 28 01:59:01.530348 2012] [proxy_fcgi:trace4] [pid 32007:tid
140105644062464] util_script.c(521): [client xxx.xxx.xxx.xxx:50665] Headers
from script 'testq.php':
[Mon May 28 01:59:01.530414 2012] [proxy_fcgi:trace4] [pid 32007:tid
140105644062464] util_script.c(522): [client xxx.xxx.xxx.xxx:50665]
X-Powered-By: PHP/5.4.3
[Mon May 28 01:59:01.530464 2012] [proxy_fcgi:trace4] [pid 32007:tid
140105644062464] util_script.c(522): [client xxx.xxx.xxx.xxx:50665]
Content-type: text/html
BALANCER:
[Mon May 28 01:58:03.480149 2012] [proxy_fcgi:debug] [pid 31905:tid
140545336473344] mod_proxy_fcgi.c(944): [client xxx.xxx.xxx.xxx:50664] AH01076:
url:
fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php?test=test
proxyname: (null) proxyport: 0
[Mon May 28 01:58:03.480315 2012] [proxy_fcgi:debug] [pid 31905:tid
140545336473344] mod_proxy_fcgi.c(954): [client xxx.xxx.xxx.xxx:50664] AH01078:
serving URL
//localhost:9000/usr/local/home/magento/app/current/testq.php?test=test
[Mon May 28 01:58:03.481519 2012] [proxy_fcgi:trace4] [pid 31905:tid
140545336473344] util_script.c(521): [client xxx.xxx.xxx.xxx:50664] Headers
from script 'testq.php?test=test':
[Mon May 28 01:58:03.481584 2012] [proxy_fcgi:trace4] [pid 31905:tid
140545336473344] util_script.c(522): [client xxx.xxx.xxx.xxx:50664] Status:
404 Not Found
[Mon May 28 01:58:03.481631 2012] [proxy_fcgi:trace1] [pid 31905:tid
140545336473344] util_script.c(599): [client xxx.xxx.xxx.xxx:50664] Status line
from script 'testq.php?test=test': Status
[Mon May 28 01:58:03.481674 2012] [proxy_fcgi:trace4] [pid 31905:tid
140545336473344] util_script.c(522): [client xxx.xxx.xxx.xxx:50664]
X-Powered-By: PHP/5.4.3
[Mon May 28 01:58:03.481717 2012] [proxy_fcgi:trace4] [pid 31905:tid
140545336473344] util_script.c(522): [client xxx.xxx.xxx.xxx:50664]
Content-type: text/html
------------------
Here is a sample from mod_rewrite w logging turned up. It looks like rules are
running twice in the balancer setup. Is that normal?
NO BALANCER:
[Mon May 28 02:03:08.125553 2012] [rewrite:trace2] [pid 32127:tid
139957454014208] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50680]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f4a729be458][rid#7f4a48002970/initial]
init rewrite engine with requested uri /testq.php
[Mon May 28 02:03:08.125650 2012] [rewrite:trace3] [pid 32127:tid
139957454014208] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50680]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f4a729be458][rid#7f4a48002970/initial]
applying pattern '^/?(.*\\.php(/.*)?)$' to uri '/testq.php'
[Mon May 28 02:03:08.125699 2012] [rewrite:trace2] [pid 32127:tid
139957454014208] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50680]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f4a729be458][rid#7f4a48002970/initial]
rewrite '/testq.php' ->
'fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php'
[Mon May 28 02:03:08.125722 2012] [rewrite:trace2] [pid 32127:tid
139957454014208] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50680]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f4a729be458][rid#7f4a48002970/initial]
forcing proxy-throughput with
fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php
[Mon May 28 02:03:08.125741 2012] [rewrite:trace1] [pid 32127:tid
139957454014208] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50680]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f4a729be458][rid#7f4a48002970/initial]
go-ahead with proxy request
proxy:fcgi://localhost:9000/usr/local/home/magento/app/current/testq.php [OK]
BALANCER:
[Mon May 28 02:03:26.126309 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f5038002970/initial]
init rewrite engine with requested uri /testq.php
[Mon May 28 02:03:26.126411 2012] [rewrite:trace3] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f5038002970/initial]
applying pattern '^/?(.*\\.php(/.*)?)$' to uri '/testq.php'
[Mon May 28 02:03:26.126468 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f5038002970/initial]
rewrite '/testq.php' ->
'balancer://magento/usr/local/home/magento/app/current/testq.php'
[Mon May 28 02:03:26.126488 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f5038002970/initial]
forcing proxy-throughput with
balancer://magento/usr/local/home/magento/app/current/testq.php
[Mon May 28 02:03:26.126506 2012] [rewrite:trace1] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f5038002970/initial]
go-ahead with proxy request
proxy:balancer://magento/usr/local/home/magento/app/current/testq.php [OK]
[Mon May 28 02:03:26.127431 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f503800a9b0/subreq]
init rewrite engine with requested uri
/usr/local/home/magento/app/current/testq.php
[Mon May 28 02:03:26.127494 2012] [rewrite:trace3] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f503800a9b0/subreq]
applying pattern '^/?(.*\\.php(/.*)?)$' to uri
'/usr/local/home/magento/app/current/testq.php'
[Mon May 28 02:03:26.127546 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f503800a9b0/subreq]
rewrite '/usr/local/home/magento/app/current/testq.php' ->
'balancer://magento/usr/local/home/magento/app/current/usr/local/home/magento/app/current/testq.php'
[Mon May 28 02:03:26.127597 2012] [rewrite:trace2] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f503800a9b0/subreq]
forcing proxy-throughput with
balancer://magento/usr/local/home/magento/app/current/usr/local/home/magento/app/current/testq.php
[Mon May 28 02:03:26.127647 2012] [rewrite:trace1] [pid 32229:tid
139982970947328] mod_rewrite.c(466): [client xxx.xxx.xxx.xxx:50681]
xxx.xxx.xxx.xxx - - [my.site.domain/sid#7f50643c8458][rid#7f503800a9b0/subreq]
go-ahead with proxy request
proxy:balancer://magento/usr/local/home/magento/app/current/usr/local/home/magento/app/current/testq.php
[OK]
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 53305] 404 errors when adding query string in a balancer setup
with mod_rewrite and mod_proxy_fcgi
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=53305
--- Comment #2 from IanB <po...@yahoo.com.au> ---
This could relate to the following bug:
https://issues.apache.org/bugzilla/show_bug.cgi?id=51077#c5
"However, if the rewrite rule is placed in directory context, the final result
has the query string appended to the URI, which in turn causes mod_proxy_fcgi
to include the query string as a part of the SCRIPT_FILENAME environment
variable, which is unexpected and causes problems for some (many?) back-end
servers, including php-fpm"
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
[Bug 53305] 404 errors when adding query string in a balancer setup
with mod_rewrite and mod_proxy_fcgi
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=53305
--- Comment #1 from Joshua Rusch <jd...@alexanderinteractive.com> ---
More info:
I'm using php-fpm as my fastcgi process manager.
Version 5.4.3 with the following patch applied:
https://bugs.php.net/bug.php?id=62172
It gets php fpm to strip out the proxy:balancer stuff from the SCRIPT_FILENAME
for php, otherwise I'd be getting 404s on all the pages.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org