Hello,
I’m migrating an app from Apache/JBoss to nginx/Glassfish. I think I’m
starting to grasp the server-location design but am getting errors when
I try to proxy a request to Glassfish. Here’s a clip from my config:
The gist of it is I want all dynamic content (dc) to go to glassfish,
i.e. foobar.com/dc/somepath/page.jsp
Everything else (presumably the static content) is served from
html/prod. (That part works)
I want the path to determine what happens, not the file extensions
(because I have some .js that is static and other that is generated by
the server).
I have a “hello world” app running on glassfish that works when accessed
directly from localhost:8080/webtest/home,
but when I try foobar.com/dc/webtest/home I get a 502 Bad Gateway error
in the browser. The nginx error log reports this:
2011/04/08 14:13:30 [notice] 3884#3940: signal process started
2011/04/08 14:13:35 [error] 828#3472: *6 no resolver defined to resolve
localhost, client: 127.0.0.1, server: www.foobar.com, request: “GET
/dc/webtest/home HTTP/1.1”, host: “foobar.com”
Any ideas what might be wrong with my configuration?
Thanks!
Greg
On Fri, Apr 08, 2011 at 03:25:53PM -0400, GZ1 wrote:
proxy_pass $scheme://localhost:8080$request_uri;
proxy_pass $scheme://localhost:8080$request_uri;
proxy_pass http://localhost:8080;
I want the path to determine what happens, not the file extensions
localhost, client: 127.0.0.1, server: www.foobar.com, request: “GET
/dc/webtest/home HTTP/1.1”, host: “foobar.com”
Any ideas what might be wrong with my configuration?
Don’t use variables in proxy_pass directive unless you really know
why you need them and what it implies.
Making progress! The /dc location wasn’t working because it wasn’t just
rewriting the url, just proxying, so on my Glassfish server it was
looking for /dc/…, which wasn’t there.
So for now I’ll just use location / and figure out another way to
differentiate the dynamic and static content by location.
At least now I can reach Glassfish from nginx, which is pretty cool.