On Fri, Dec 16, 2022 at 1:38 AM Maxim Dounin <mdou...@mdounin.ru> wrote:
> Hello! > > On Thu, Dec 15, 2022 at 09:53:11PM +0530, Kaushal Shriyan wrote: > > > > > I am running the nginx version: nginx/1.22 as a reverse proxy server on > > CentOS Linux release 7.9.2009 (Core). When I hit > http://mydomain.com/apis I > > see the below message on the browser even if the upstream server php-fpm > > server is up and running. > > > > *{"errors": {"status_code": 502,"status": "php-fpm server is down"}}* > > > > I have set the below in the nginx.conf file and attached the file for > your > > reference. > > > > if ($upstream_http_content_type = "") { > > add_header 'Content-Type' 'application/json' always; > > add_header 'Content-Type-3' > > $upstream_http_content_type$isdatatypejson"OK" always; > > return 502 '{"errors": {"status_code": > 502,"status": > > "php-fpm server is down"}}'; > > } > > The "if" directive makes it possible to conditionally select > configuration to handle a request, and therefore can only use > information available before the request is handled. In your > case, before the request is sent to the upstream server. See > http://nginx.org/en/docs/http/ngx_http_rewrite_module.html for > more details. > > As such, $upstream_http_content_type will be always empty, since > there are no upstream response yet, and therefore the > configuration will always return 502. This matches your > observations. > > An obvious fix would be to remove the configuration chunk in > question. > > Instead, you probably need something like: > > error_page 502 /502.json; > > location = /502.json { > return 200 '{"errors": {"status_code": 502, "status": "php-fpm > server is down"}}'; > } > > Thanks Maxim for the suggestion. I will try it out and keep you posted with the testing as it progresses. I am obliged to this mailing list. Thanks in advance. Best Regards, Kaushal
_______________________________________________ nginx mailing list nginx@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx