Re: nginx + php-fpm = баг?

2020-04-27 Пенетрантность grey
Сгораю от стыда - дело было в количестве воркеров :)

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,287839,287847#msg-287847

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: nginx + php-fpm = баг?

2020-04-27 Пенетрантность Alexey

27.04.2020 16:38, grey пишет:

Приветствую всех!

Прежде чем создавать топик, перепроверил всё несколько раз, но объяснения
такого поведения nginx найти не смог.

Суть проблемы: если из php-скрипта со своего сервера я обращаюсь посредством
curl или fopen к своему же сайту, то получаю ошибку "504 Gateway Time-out".
Если выполнить в консоли сервера "php /www/test.ru/1.php", то скрипт вернет
html-страницу сервера. Если открыть в браузере адрес test.ru/1.php, то сайт
будет какое-то время думать, а по прошествию таймаута вернет "504 Gateway
Time-out" (пока сайт будет думать, в лог будут сыпаться ошибки
2020/04/27 15:02:09 [error] 6540#6968: *960636 connect() failed (10061: No
connection could be made because the target machine actively refused it)
while connecting to upstream, client: 5.34.*.*, server: test.ru, request:
"GET / HTTP/2.0", upstream: "fastcgi://127.0.0.1:9123", host: "test.ru",
referrer: "http://***.ru/;). Если в скрипте заменить адрес сервера test.ru
на любой другой внешний, пусть будет ya.ru, то и в консоли и в браузере все
открывает без ошибок. Из чего я делаю вывод, php тут не при чем, затык
именно в nginx. nginx не самой последней версии - 1.17.3 и обновить пока не
могу, php 7.3.х - тоже самая последняя версия.


А почему в нгинксе, а не в php. сделайте запрос за статичным файлом к 
тому же нгинксу, который отдаётся не  через php.


Воркеров php сколько ? точно >1?

/А
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx + php-fpm = баг?

2020-04-27 Пенетрантность grey
Приветствую всех!

Прежде чем создавать топик, перепроверил всё несколько раз, но объяснения
такого поведения nginx найти не смог.

Суть проблемы: если из php-скрипта со своего сервера я обращаюсь посредством
curl или fopen к своему же сайту, то получаю ошибку "504 Gateway Time-out".
Если выполнить в консоли сервера "php /www/test.ru/1.php", то скрипт вернет
html-страницу сервера. Если открыть в браузере адрес test.ru/1.php, то сайт
будет какое-то время думать, а по прошествию таймаута вернет "504 Gateway
Time-out" (пока сайт будет думать, в лог будут сыпаться ошибки
2020/04/27 15:02:09 [error] 6540#6968: *960636 connect() failed (10061: No
connection could be made because the target machine actively refused it)
while connecting to upstream, client: 5.34.*.*, server: test.ru, request:
"GET / HTTP/2.0", upstream: "fastcgi://127.0.0.1:9123", host: "test.ru",
referrer: "http://***.ru/;). Если в скрипте заменить адрес сервера test.ru
на любой другой внешний, пусть будет ya.ru, то и в консоли и в браузере все
открывает без ошибок. Из чего я делаю вывод, php тут не при чем, затык
именно в nginx. nginx не самой последней версии - 1.17.3 и обновить пока не
могу, php 7.3.х - тоже самая последняя версия.

Конфиг nginx-а минимальный.

server {
server_name  test.ru;

location ~ \.(php|html)$ {
fastcgi_pass   127.0.0.1:9123;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME 
$document_root$fastcgi_script_name;
includefastcgi_params;
}
}

Сам скрипт, который вызывает проблему:

https://test.ru/;);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$$contents=curl_exec ($ch);
curl_close ($ch);

/*
или вариант без curl-а
$handle = fopen("https://test.ru;, "rb");
$contents = stream_get_contents($handle);
fclose($handle);
*/

echo $contents;
?>

Может это я где-то туплю, но где понять не могу и почему смена адреса решает
проблему?

Просьба проверить у себя.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,287839,287839#msg-287839

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru