사실 라즈베리파이에
NextCloud를 설치하면
504 Gateway Time-out 창을
만나게 된다.
이 포스트는
이 오류에 대한
해결 방안이다.
원인
504 Gateway Time-out은
원인이 무엇이든
결국 시간이 초과되었다는
의미이다.
다양한 이유가 있겠지만
우리의 경우에는
무거운 NextCloud와
가벼운 라즈베리파이가
원인이 되겠다.
NextCloud는
PHP 언어를 기반으로
제작되었다.
문제는 이 PHP 언어가
무겁다는 것...
지금 라즈베리파이에
Portainer와
NextCloud가
웹으로 동작하고 있으며,
MariaDB가
또 동작하고 있으니,
프로그램을
여러 개 돌리기엔
라즈베리파이 4가
힘든가 보다.
해결방안
성능이 부족해서
사용자의 요청을
처리하는 데
시간이 많이 걸리기 때문에
대기시간을 늘려
Time-out 오류를 해결해야한다.
NextCloud의 경우
Time-out 설정은
PHP와
Nginx에서 하기 때문에
모두 설정을
변경해줘야 한다.
또한,
NextCloud를
Docker로 설치했기 때문에
설정을 변경하기 위해서는
Portainer로 접속하여
NextCloud의
콘솔로 접속해야한다.
php.ini 설정 변경
Portainer를 통해
NextCloud의 콘솔로 접속한 후,
다음과 같이 입력한다.
# vi /etc/php7/php.ini
php.ini 파일의 내용이
보여질 텐데
여기서
default_socket_timeout 옵션을
찾아서 시간을 늘려줘야한다.
default_sockert_timeout = 60 -> 3000
처음에 300(5분)으로 변경했다가
또 나타나길래
3000(50분)으로 변경했다.
:wq 를 입력하여
저장하고 끈다.
nginx.conf 설정 변경
이번에는
Nginx의 설정을
변경해야 한다.
다음과 같이 입력한다.
# vi /etc/nginx/nginx.conf
nginx.conf 파일의 내용이
보여질텐데
이번에는
keepalive_timeout 옵션을
수정해야 한다.
keepalive_timeout 65 -> 3000;
마찬가지로
저장하고 종료한다.
NextCloud 재시작
설정을 변경했으니
NextCloud Container를 재시작한다.
Portainer에서
NextCloud를 선택한 후
재시작해주면 된다.
성공!
이제
NextCloud에 접속하면
화면에 제대로 나타난다.
하지만
속도는...
눈물이 앞을 가린다...