<div dir="ltr">Валентин, спасибо, за ваш совет, пересобрал Unit и получил довольно загадочную картину. К примеру.<div>Вот сообщение в логе Unit:</div><div>2019/07/15 00:02:48.152 [warn] 20971#20971 [unit] #174772: application returned 500 response<br></div><div><br></div><div>Окей, идем в лог ошибок php и ищем, что ж было:<br>[15-Jul-2019 00:02:48 Europe/Moscow] Failed to connect [111]: Connection refused<br></div><div><br></div><div>Внимание вопрос. Как тут узнать причину? </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 3 июл. 2019 г. в 18:47, Валентин Бартенев <<a href="mailto:vbart@nginx.com">vbart@nginx.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wednesday 03 July 2019 12:47:01 Anton Kiryushkin wrote:<br>
> Спасибо за ваш ответ.<br>
> <br>
> Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, какую<br>
> именно. Еще раз, проблема заключается в том, что в логе в access.log nginx<br>
> есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в логе<br>
> ошибок php (а там прописана опция error_log), и логе unit и в логе nginx,<br>
> потому что там в принципе не должно быть этих ошибок. В случае с fpm в логе<br>
> ошибок nginx гарантированно причину можно было найти. Приложение не<br>
> возвращает просто так 500-ю ошибку.<br>
> <br>
> Поэтому и возник вопрос, как же можно заставить unit писать лог любых своих<br>
> ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так как<br>
> возможные вещи, которые есть возможность предпринять в php, на мой взгляд,<br>
> предприняты.<br>
[..]<br>
<br>
В error-log nginx писалось то, что приходило от php-fpm через stderr-канал,<br>
а тот в свою очередь посылал туда то, что php писал в stderr.<br>
<br>
В случае Unit-а весь stderr из php направляется в unit.log и собственно там<br>
и должен быть.<br>
<br>
Могу предложить попробовать собрать php модуль с патчем ниже. В этом случае<br>
всякий раз, когда php-интерпретатор возвращает ответ с 500-ым кодом, в unit.log<br>
будет об этом запись.<br>
<br>
2019/07/03 20:45:02.899 [warn] 14919#14919 [unit] #7: application returned 500 response<br>
<br>
Это, как минимум, позволит исключить ситуацию, что 500-ую генерирует сам Unit<br>
и не сообщает об этом по какой-то причине.<br>
<br>
--<br>
Валентин Бартенев<br>
<br>
<br>
diff -r 2b068c8361f9 src/nxt_php_sapi.c<br>
--- a/src/nxt_php_sapi.c Tue Jul 02 16:44:08 2019 +0300<br>
+++ b/src/nxt_php_sapi.c Wed Jul 03 20:32:38 2019 +0300<br>
@@ -774,6 +774,10 @@ nxt_php_send_headers(sapi_headers_struct<br>
status = 200;<br>
}<br>
<br>
+ if (status == 500) {<br>
+ nxt_unit_req_warn(req, "application returned 500 response");<br>
+ }<br>
+<br>
rc = nxt_unit_response_init(req, status, fields_count, resp_size);<br>
if (nxt_slow_path(rc != NXT_UNIT_OK)) {<br>
return SAPI_HEADER_SEND_FAILED;<br>
<br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div>Best regards,</div>Anton Kiryushkin<br><br></div></div></div>