Also, just to be clear, you’re saying that r.args should include parsed POST
vars? Obviously it includes query string/GET vars. That works. But the
values in the POST body do not show up in the args output. And again, I
basically see nothing coming up in the output for variables.
This:
# Pass PHP requests to PHP-FPM
location ~ \.php$ {
limit_req zone=post_limit burst=5 nodelay;
limit_req_status 429;
set $test 0;
add_header Content-Type text/plain;
js_content dbadmin.access;
}
function access(r){
var jObj = JSON.stringify(r.args) + '\n';
jObj = JSON.stringify(r.variables);
try {
var parseJSON = JSON.parse(jObj);
} catch (err) {
r.return(400, 'Cannot parse jObj');
return;
}
r.return(200, jObj);
return;
}
export default {access}
Shows nothing. Just an empty JSON object like {}
--
Lance Dockins
Minister of Magic
WordKeeper
Office: 405.585.2500
Cell: 405.306.7401
https://wordkeeper.com
On Aug 11, 2021, 10:44 PM -0500, Lance Dockins <[email protected]>, wrote:
> Something is definitely wrong here but I’ve stripped most of the more
> advanced configuration out of the vhost conf, removed all modules other than
> NJS, and set the Nginx compile to pretty much the most vanilla compile option
> set that I can to rule out the possibility of 3rd party interference with
> this. Nothing is having any impact on the args var output. For POST, it’s
> always an empty object. For GET, it’s always showing the query string vars
> in a key/value pair (if there are any). The variables and rawVariables
> objects always seem to be empty but I’m not setting any vars with NJS right
> now. I’m only setting those in Nginx.
>
> At this point, if you’re saying that it should be working, I’m inclined to
> think that I’ve discovered some sort of bug. Debug didn’t turn up anything
> unexpected. I’m not the most well versed person at parsing through debug
> logs but it all looked like expected stuff to me.
>
> Moreover, the config that I was using at the start of this conversation is a
> config that is working on multiple thousands of production websites on well
> over 100 servers that we care for with no issues whatsoever. Not to mention
> that that config works just fine with LuaJIT. The only difference was that
> we swapped out the LuaJIT hooks for NJS to see how that might work instead.
> But like I said, at this point, even with no 3rd party modules, no patches of
> any sort, very basic compile settings, and no fancy use of Nginx settings
> (e.g. extensive use of IF), it’s just not working.
>
> So either I have stumbled across some flaw in NJS or there’s a
> misunderstanding somewhere in the discussion.
>
>
> --
> Lance Dockins
>
> On Aug 11, 2021, 10:00 PM -0500, Lance Dockins <[email protected]>, wrote:
> > Unfortunately, we can’t really use standard packages. We need extra
> > modules. I’m recompiling and enabling debug now. The modules we’re using
> > aren’t anything super abnormal and we might replace one of them with NJS at
> > some point. All I know for sure is that this seems to work just fine with
> > OpenResty’s LuaJIT integration/module. So it’s something that is different
> > between NJS and that.
> >
> > Hopefully the debug will turn something up.
> >
> >
> > --
> > Lance Dockins
> >
> > On Aug 11, 2021, 9:57 PM -0500, Sergey A. Osokin <[email protected]>,
> > wrote:
> > > On Wed, Aug 11, 2021 at 09:48:48PM -0500, Lance Dockins wrote:
> > > > I’ll try recompiling nginx with that to see if that changes anything.
> > >
> > > I'd recommend to use official packages for Linux from the following URL,
> > > http://nginx.org/en/linux_packages.html
> > >
> > > > In fact, even your code is returning nothing.
> > >
> > > That's definitely something wrong on your side. Please simplify the
> > > nginx configuration, remove all unnecessary directives.
> > >
> > > ...
> > >
> > > > When I submit a POST with vars, I still get an empty object in the
> > > > response.
> > >
> > > A couple of suggestions:
> > >
> > > - Have you enabled debugging log? If so, could you share nginx-error.log.
> > > - How did you test the code? Here's my shell script:
> > >
> > > #!/bin/sh
> > >
> > > curl -v --data-binary @test.bin http://127.0.0.1:8080/test?foo=bar\&baz=1
> > >
> > > #EOF
> > >
> > > Please report when all suggested points are done, thanks.
> > >
> > > --
> > > Sergey
> > > _______________________________________________
> > > nginx mailing list
> > > [email protected]
> > > http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx