nginx + uwsgi + fllask 가 Liux 에서 의 배치 (신뢰성 확보)

nginx + uwsgi + fllask 를 사용 하여 서버 를 배치 한 지 반년 이 넘 었 습 니 다. 많은 것 을 잊 어 버 렸 습 니 다. 현재 프로젝트 는 갑자기 새로운 서버 를 배치 해 야 하기 때문에 nginx + uwsgi + fllask 의 배치 방법 을 다시 배 워 야 합 니 다.인터넷 에 서 는 대부분 이 튜 토리 얼 이나 블 로그 가 말 을 제대로 하지 못 하고 조작 도 하지 않 고 대충 끝 난 것 으로 나 타 났 다.심지어 어떤 사람 은 nginx 를 먼저 열 고, 어떤 사람 은 uwsgi 를 먼저 열 라 고 하기 때문에, 나 는 더욱 믿 을 만 한 것 을 쓸 계획 이다.여러분 은 제 안내 에 따라 nginx + uwsgi + flask 가 Liux 서버 에서 웹 프로젝트 의 배 치 를 쉽게 완성 할 수 있 습 니 다.
지금 우리 가 flask 스 크 립 트 를 다 썼 다 고 가정 해 보 세 요.나 는 그 에 게 manager. py 라 는 이름 을 지어 주 었 다.그렇다면, 우 리 는 자신의 flask 프로그램 을 서버 에 업로드 하고, uwsgi + nginx 배 치 를 사용 하여 외부 네트워크 에 접근 할 수 있 도록 해 야 합 니 다. 우 리 는 어떻게 해 야 합 니까?서 두 르 지 말고 다음 과 같은 몇 가지 절차 로 나 누 어 라.
  • 스 크 립 트 를 서버 에 업로드 합 니 다.디 렉 터 리 는 마음대로 찾 을 수 있 습 니 다. 예 를 들 어 / home / test.절대 / tmp 에 넣 지 마 세 요. 그렇지 않 으 면 쓰레기 로 치 워 진 것 을 발견 할 수 있 습 니 다.
  • uwsgi 설치.pip 를 사용 하면 uwsgi 를 설치 할 수 있 습 니 다. pip install uwsgi잘못 보고 하면 python. h 가 부족 합 니 다. 서 두 르 지 마 세 요. 먼저 yum install python-devel 한 다음 에 pip 로 설치 하면 됩 니 다.
  • Nginx 를 설치한다.yum 도 구 를 사용 합 니 다 (centos 에서 다른 Liux 는 apt 로 대체 할 수 있 습 니 다).sudo yum intall -y nginx 설치 가 성공 하 기 를 기다 리 고 있 습 니 다.
  • uwsgi 와 nginx 가 모두 설치 되 었 음 을 확인 합 니 다.뒤의 설정 을 시작 합 니 다.
  • uwsgi 설정.현재, 방금 flask 스 크 립 트 를 올 린 디 렉 터 리 cd /home/test 에 들 어 갑 니 다.테스트. ini 와 같은 파일 을 새로 만 듭 니 다.vi test.ini 들 어가 면 다음 줄 을 적 으 세 요.
  • [uwsgi]
    socket= 127.0.0.1:5000
    wsgi-file=/home/test/manager.py
    callable=app
    touch-reload=/home/test/
    master = true
    

    이 몇 개의 매개 변 수 는 무슨 뜻 입 니까?첫 번 째 는 socket 입 니 다. 즉, 이 uwsgi 프로그램 에 연 결 된 소켓 입 니 다.두 번 째 매개 변 수 는 flask 파일 의 경로 입 니 다.세 번 째 인 자 는 flask 대상 의 이름 입 니 다. (바로 그 app = Flask ( name) 안에 있 는 'app' 입 니 다. 다른 이름 을 부 르 면 그 이름 으로 바 꾸 세 요.네 번 째 매개 변 수 는 처음에 올 린 폴 더 의 경 로 를 작성 하 는 것 이지 중요 한 매개 변 수 는 아 닙 니 다.다섯 번 째 매개 변 수 는 그대로 옮 기 면 됩 니 다.보존6. Nginx 설정.nginx 서버 의 프로필 nginx. conf 를 엽 니 다.찾 지 않 으 면 보통 * / etc / nginx / nginx. conf * * 경로 에서 찾 습 니 다. *그렇지 않 으 면 whereis nginx 명령 을 사용 하여 nginx 가 있 는 모든 디 렉 터 리 를 찾 은 다음 디 렉 터 리 에 nginx. conf 파일 이 있 는 지 하나씩 볼 수 있 습 니 다. *그것 을 열 고 편집 하 세 요.server 코드 블록 이 무 거 운 location 코드 블록 만 수정 하 십시오.이렇게 만 들 기:
    location / {
               include /etc/nginx/uwsgi_params;
               uwsgi_pass 127.0.0.1:5000;
            }
    

    됐 습 니 다.그 중, uwsgipass 매개 변 수 는 앞에서 언급 한 uwsgi 프로그램의 소켓 과 함께 이 소켓 을 통 해 통신 합 니 다.conf 파일 에 있 는 server 코드 블록 에 listen 80 이 있 는 것 을 볼 수 있 습 니 다.이것 은 nginx 로 하여 금 80 포트 를 감청 하 게 하고 127.0.0.1: 5000 을 통 해 백 엔 드 에 전 달 된 uwsgi 를 요청 한 다음 이 포트 를 통 해 백 엔 드 로 돌아 온 데 이 터 를 요청 에 전달 하 는 것 입 니 다 (알 아 볼 수 없 으 면 괜 찮 습 니 다).7. nginx 서버 를 실행 합 니 다.실행 방법: nginx -c /etc/nginx/nginx.conf 실행 에 성공 하면 브 라 우 저 로 서버 의 ip 을 열 면 400 bad request 가 표 시 됩 니 다.nginx 서버 가 성공 적 으로 열 렸 지만 백 엔 드 의 uwsgi 가 켜 지지 않 아 백 엔 드 로 전송 을 요청 하 는 uwsgi 프로그램 을 사용 할 수 없습니다.그래서 다음은 uwsgi 를 엽 니 다.8. uwsgi 프로그램 을 실행 합 니 다.실행 방법: 먼저 test. ini 가 있 는 디 렉 터 리 로 전환 합 니 다.그 다음 uwsgi --ini test.ini 이면 됩 니 다.127.0.0.1: 5000 에 성공 적 으로 연결 되 었 고 서비스 가 성공 적 으로 시작 되 었 다 는 글 자 를 볼 수 있 습 니 다.브 라 우 저 에 서버 의 ip 주 소 를 입력 하 십시오. 의외 의 사고 가 발생 하지 않 으 면 당신 이 쓴 fllask 프로그램 에 접근 할 수 있 습 니 다.해결 ~ (tips: 직접 uwsgi -- ini - tesst. ini 로 인해 정 보 를 표준 출력 으로 인쇄 할 수 있 으 므 로 nohup 으로 실행 하 는 것 을 권장 합 니 다)
    마지막 으로 서버 와 서 비 스 를 닫 는 방법 을 제시 합 니 다.nginx: nginx - s stop 닫 기 uwsgi killall - s INT / path / to / uwsgi (uwsgi 의 path 는 whereis 를 통 해 찾 을 수 있 습 니 다. kill 을 직접 사용 하면 uwsgi 서비스 가 재 개 되 고 닫 을 수 없습니다)
    마지막 으로 웹 애플 리 케 이 션 을 성공 적 으로 배치 하지 못 하면 아래 에 메 시 지 를 남 겨 주세요!메 일 로 보 내 주세요[email protected]。질문 이 있 으 면 반드시 대답 하 다.
    앞에서 다른 블 로그 에 쓰 인 불완전한 방법 을 토 설 했 습 니 다. 사실은 제 가 일부러 그들 을 먹칠 하려 고 한 것 도 아 닙 니 다. 대부분의 블 로 그 는 불완전 하지만 저 에 게 많은 도움 을 주 었 기 때문에 저 는 그들 에 게 매우 감 사 드 립 니 다.그러나 이 는 블 로그 에 튜 토리 얼 안 내 를 쓸 때 똑 같이 무책임 한 실 수 를 했 는 지 를 일 깨 워 주 었 다.따라서 제 모든 블 로그 가 모 르 고 무책임 한 부분 이 있다 면 연락 주세요[email protected]겸허 하 게 고 치 겠 습 니 다.

    좋은 웹페이지 즐겨찾기