UWsgi과 Selenium에서 504 gateway time-out

한결·2022년 3월 18일
0

Web

목록 보기
1/2

환경: 우분투, Flask, uwsgi, Nginx, Selenium, Chromedriver

Flask 어플리케이션을 Nginx와 uwsgi를 통해서 배포했을 때 Selenium을 사용하는 API가 정상적으로 동작하지 않음을 확인하였습니다.

에러 메세지는 504 gateway time-out

해당 파이썬 파일에 에러 디버깅을 하였고 원인이 되는 코드를 찾아 내었습니다.
(해당 코드에서 다음코드로 넘어가지 않음)


해당 코드는 바로 셀레니움에서 브라우저를 생성하는 부분이었습니다.

 browswer = webdriver.Chrome('./webdriver/chromedriver',options=options)

원인은 해당 파이썬 파일이 관리자 권한으로 실행되지 않아서입니다.

마찬가지로 uwsgi가 아닌 단순히 셀레니움을 사용하여 브라우저를 생성하는 경우에도 해당 파이썬 파일은 sudo를 통해서 실행되야 정상적으로 브라우저가 생성되고 이후 과정이 진행되는 것을 확인하였습니다.
(sudo를 통해 .py를 실행하지 않을 경우 위의 browswer 생성 부분에서 무한 루프가 걸리게 됩니다)


해결 방법은 다음과 같습니다.

  1. 일반적인 파이썬(.py) 또는 Flask 어플리케이션인 경우 sudo 명령을 통해 실행하면 문제없이 해결됨
  2. uwsgi를 사용하여 504 gateway time-out이 발생하는 경우 uwsgi.ini파일을 실행할 때 sudo명령을 통해 실행하면 해결 가능
    $ sudo uwsgi --ini uwsgi.ini
profile
개발

0개의 댓글