Ошибка net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK)
Столкнулся с тем, что одна из веб страниц перестала открываться. В дев консоле на вкладке Network в Chrome была ошибка net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK). Что было как-то странно.
В Firefox страница тоже не загружалось, но ошибка была "The page you are trying to view cannot be shown due because the authenticity of the received data could not be verified.". Тк с таким я еще не сталкивался, я пошел искать причину..
На stackoverflow нашел, что такая проблема может возникать практически от чего угодно, от настроек SSL, ыключения gzip, ошибках в заголовках и много чего еще
- https://stackoverflow.com/questions/58215104/whats-the-neterr-http2-protocol-error-about
После некотрых экспериментов с настройками, я понял что у меня какая-то другая причина.
Все время что я экспериментировал с настройками я проверял логи по стандартному пути /var/log/nginx/error.log , но потом обратил внимание что нода использует другое место для хранение логов этого домена.
Там я обнаружил, что nginx не может получить доступ к временным папкам
1 2 3 4 |
2024/01/13 13:56:39 [crit] 29898#0: *61800 open() "/var/lib/nginx/tmp/fastcgi/0/80/0000009800" failed (13: Permission denied) while reading upstream, client: 192.168.219.232, server: site.local, request: "GET /view/515ffc.html HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/site.local-www.sock:", host: "site.local" 2024/01/13 13:56:39 [crit] 29898#0: *61359 open() "/var/lib/nginx/tmp/fastcgi/1/80/0000009801" failed (13: Permission denied) while reading upstream, client: 192.168.106.221, server: site.local, request: "GET /docs/6a6bb.html HTTP/2.0", upstream: "fastcgi://unix:/run/php-fpm/site.local-www.sock:", host: "site.local" |
тут я сообразил, что это возникло из-за недавнего апгрейда пакетов.
Я убедился, что nginx работает от пользователя www-data (а не от стандартного nginx)
1 2 3 4 5 6 7 |
ps aux | grep "nginx: worker process" www-data 31473 5.6 2.1 231348 78684 ? S 13:58 1:02 nginx: worker process www-data 31474 0.9 2.0 229872 74616 ? S 13:58 0:10 nginx: worker process www-data 31475 0.0 0.7 229276 27784 ? S 13:58 0:00 nginx: worker process root 37251 0.0 0.0 222008 1104 pts/3 R+ 14:16 0:00 grep --color=auto nginx: worker process |
И что этот пользователь не имеет доступа к этим папкам
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# sudo -uwww-data ls /var/lib/nginx/tmp/ ls: cannot access '/var/lib/nginx/tmp/': Permission denied # ls -al /var/lib/nginx/tmp total 28 drwxrwx---. 7 nginx root 4096 дек 21 2021 . <<<<<<<< владелец nginx, запрещено чтение для остальных drwxrwx---. 3 nginx root 4096 дек 21 2021 .. <<<<<<<< владелец nginx, запрещено чтение для остальных drwx------. 2 www-data root 4096 янв 11 23:44 client_body <<<<<<<< владелец www-data drwx------. 12 www-data root 4096 окт 16 2021 fastcgi drwx------. 2 www-data root 4096 окт 14 2021 proxy drwx------. 2 www-data root 4096 окт 14 2021 scgi drwx------. 2 www-data root 4096 окт 14 2021 uwsgi |
Я не стал менять владельца корневых папок и решил открыть их на чтение, чтобы пользователь www-data мог добраться к своим папкам.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# chmod 0775 /var/lib/nginx /var/lib/nginx/tmp # sudo -u www-data ls -al /var/lib/nginx/tmp total 28 drwxrwxr-x. 7 nginx root 4096 дек 21 2021 . <<<<<<<< владелец nginx, разрешено чтение для остальных drwxrwxr-x. 3 nginx root 4096 дек 21 2021 .. <<<<<<<< владелец nginx, разрешено чтение для остальных drwx------. 2 www-data root 4096 янв 10 18:04 client_body drwx------. 12 www-data root 4096 окт 16 2021 fastcgi drwx------. 2 www-data root 4096 окт 14 2021 proxy drwx------. 2 www-data root 4096 окт 14 2021 scgi drwx------. 2 www-data root 4096 окт 14 2021 uwsgi |
После этого на всякий случай перезагрузил nginx и проблема ушла
1 2 3 4 |
# nginx -t # nginx -s reload |
Author: | Tags: /
| Rating:
Leave a Reply