Plesk: Nginx: 502: Bad Gateway
Testing a website migrating on Plesk from the project vendor.
When post an login form, got an error:
502 Bad Gateway
Checked the logs:
$ cat logs/proxy_error_log | grep "\[error\]" | grep "upstream"
Showed "upstream sent too big header":
# YYYY/MM/DD HH:MM:SS [LEVEL] PID#TID: *CID MESSAGE
2020/11/16
15:00:50 [error] 31416#0: *147066 upstream sent too big header while
reading response header from upstream, client: 1.2.3.4, server:
domain.hk, request: "POST /login HTTP/2.0", upstream:
"https://10.0.2.4:7081/login", host: "domain.hk", referrer:
"https://domain.hk/login"
2020/11/16 15:10:28 [error] 35255#0: *147109 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 15:11:57 [error] 36256#0: *147240 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 16:07:37 [error] 49760#0: *147316 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 17:17:14 [error] 69017#0: *147562 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 15:10:28 [error] 35255#0: *147109 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 15:11:57 [error] 36256#0: *147240 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 16:07:37 [error] 49760#0: *147316 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
2020/11/16 17:17:14 [error] 69017#0: *147562 upstream sent too big header while reading response header from upstream, client: 1.2.3.4, server: domain.hk, request: "POST /login HTTP/2.0", upstream: "https://10.0.2.4:7081/login", host: "domain.hk", referrer: "https://domain.hk/login"
At the beginning, Domains --> domain.hk --> Apache & nginx Settings --> Additional nginx directives, set the below.
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
Not work.
Got the same "upstream sent too big header" error.
Tested with curl. The size enough.
$ curl -s -w \%{size_header} -o /dev/null -X POST -F 'user=userA' -F 'password=1234ABCD' https://domain.hk/login
Would be another way.
Set the following, and then solved it.
proxy_buffers 8 16k;
proxy_buffer_size 32k;
proxy_buffer_size 32k;
References
https://conetix.com.au/support/fix-upstream-sent-too-big-header-error/
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
Update