curl api 전송시 타임아웃

curl api 전송시 타임아웃

QA

curl api 전송시 타임아웃

본문

curl로 데이터를 전송테스트 하고있는데요

 

1~2건 전송은 잘되는데

 

좀 많이  보내게되면 

GATEWAY TIMEOUT 에러가 발생합니다..

 

이게 default_socket_timeout  설정된  60초가 문제인듯하여  600 으로 변경해서 아파치 재시작까지 하고

 

다시 전송 해봤는데요...  동일하게  60초 정도에 타임아웃 오류가 발생하는데요...

 

default_socket_timeout 이거 말고 다른거 수정해야 할게 또있을가요?

 

 

이 질문에 댓글 쓰기 :

답변 4

cURL 요청시간 제한은 다음 옵션으로 설정할수 있고

https://www.php.net/manual/en/function.curl-setopt.php

CURLOPT_TIMEOUT : 호스트 연결 후 실행시간 제한

CURLOPT_CONNECTTIMEOUT : 호스트 연결까지의 실행시간 제한

 

여러 요청핸들을 비동기로 동시에 수행하는 함수도 고려해볼수 있습니다.

https://www.php.net/manual/en/function.curl-multi-init.php

해당 옵션으로  초를 늘려서 해봐도 딱 60초 되면  타임아웃이 뜨네요.. 흠 서버에서 php-fpm? 이쪽도 수정 하라고 구글이 그러는데 아 서버를 모르니 머리 아프네요 ㅋㅋㅋ

php, apache 에서 고려할 게 있습니다

 

1. 파일 크기

2. 연결 후 실행시간

 

php.ini 에서는

upload_max_filesize

max_file_uploads

post_max_size

max_execution_time

max_input_time

memory_limit

등이 있겠네요

php.ini 부분확인해보니

upload_max_filesize = 300M
max_file_uploads = 20
post_max_size = 300M
max_execution_time = 600
max_input_time = 60
memory_limit = 512M

이렇게 되어있고

default_socket_timeout 이건 600 으로 수정하고

php-fpm 부분에
request_terminate_timeout 이거도 600 으로 변경하고

재시작 해봐도 딱 60초에서

Gateway Timeout
The gateway did not receive a timely response from the upstream server or application.

이렇게 에러가 발생 되더라고요... 음~

max_input_time = 60
이걸 수정해야하나...

구굴링 하면 Timeout 이거도 늘려 보라던데..

저녁에나 다시 시도해 봐야겠네요

서버 쪽에 connection 갯수 제한이 있는 거는 아닐까요

답변을 작성하시기 전에 로그인 해주세요.
전체 95
QA 내용 검색
filter #curl ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT