nginx + uwsgi 배치 실천 의 구덩이 밟 기 총화 (2)

3546 단어 nginxuwsgi
이전 nginx + uwsgi 배치 실천 의 구덩이 정리 (1) 이 편 은 내 가 nginx + uwsgi 설정 에서 밟 은 구 덩이 를 계속 나열 할 것 이다.이 편 에서 찾 지 못 한 문 제 는 전편 에서 볼 수 있다.
1. 아주 흔히 볼 수 있 는 nginx 오류
nginx 를 시작 한 후 로 그 를 보면 오류 가 발생 합 니 다.
[error] 1198#1198: *224 connect() to unix:///home/myproject/myproject.sock failed (111: Connection refused) while connecting to upstream, client: 37.102.213.142, server: 37.102.213.142, request: "GET /common/page_contents/ HTTP/1.0", upstream: "uwsgi://unix:///home/myproject/myproject.sock:", host: "37.102.213.142:8000", referrer: "http://37.102.213.142/main"

나 는 구 글 에서 이 신문 을 직접 검색 하여 여러 가지 원인 분석 과 해결 방안 을 얻 었 다.오류 메 시 지 를 보면 nginx 가 uwsgi 에 게 요청 을 전달 한 후에 이 요청 은 uwsgi 에 의 해 거절 되 었 다.기본적으로 오류 의 원인 은 nginx 가 아니 라 uwsgi 서버 내부 에 오류 가 발생 하여 퍼 가기 요청 이 거부 되 었 습 니 다.그래서 uwsgi 의 로 그 를 확인 해 야 합 니 다.uwsgi 의 로 그 를 검사 한 결과 python 에서 오류 가 발생 했 습 니 다. 이렇게 다른 구 덩이 를 발 견 했 습 니 다. 이 구 덩이 는 다음 과 같 습 니 다.
2. python ImportError : No module named ‘encodings’
제목 과 같이 완전한 오 류 는 다음 과 같다.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

대량의 자 료 를 찾 은 결과 이 오류 가 발생 한 원인 은 대부분 python 의 가상 운영 환경 설정 오류 때 문 입 니 다.python 가상 운행 환경 은 또 무엇 입 니까?Python 응용 프로그램 을 개발 할 때 시스템 에 설 치 된 Python 3 는 하나의 버 전 만 있 습 니 다. 3.6.모든 제3자 가방 은 pip 에 의 해 Python 3 의 site - packages 디 렉 터 리 에 설 치 됩 니 다.만약 우리 가 여러 개의 응용 프로그램 을 동시에 개발 하려 고 한다 면, 이 응용 프로그램 들 은 모두 하나의 Python 을 공유 할 것 이다. 바로 시스템 에 설 치 된 Python 3 이다.A 를 사용 하려 면 django 1.11.9 가 필요 하고 B 를 사용 하려 면 django 2.1 이 필요 합 니 다. 어떻게 합 니까?이런 상황 에서 모든 응용 프로그램 은 각자 '독립 적' 인 Python 운영 환경 을 가 져 야 할 수도 있다.virtualenv 는 응용 프로그램 에 '격 리' 를 만 드 는 Python 운영 환경 입 니 다.
하지만 저 는 python 가상 운행 환경 을 사용 하지 않 았 습 니 다. 왜 잘못 보 고 했 습 니까?나중에 uwsgi 의. ini 설정 파일 에 home =... 이 항목 이 있 는 것 을 발 견 했 습 니 다. 가상 환경 변 수 를 지정 하 는 데 사 용 됩 니 다. 제 이 항목 은 설정 할 때 모 르 고 값 을 임의로 작성 하여 번 거 로 운 오 류 를 초래 했 습 니 다.단일 python 응용 프로그램 이나 python 가상 실행 환경 을 사용 하지 않 았 을 때 uwsgi 의 home 이라는 항목 은 더 이상 값 을 부여 하지 않 아 도 됩 니 다.
3. no python application found 의 오류
unable to load app 0 (mountpoint='') (callable not found or import error)
--- no python application found, check your startup logs for errors ---

이것 도 비교적 흔히 볼 수 있 는 오류 입 니 다. 오 류 는 보통 어떤 module 이나 app 이 없 기 때 문 입 니 다.init_.py 이 파일 은 Python 에서 이 응용 프로그램 이나 모듈 을 식별 할 수 없습니다.추가 하기 만 하면 틀 리 지 않 을 것 이다.하면, 만약, 만약...init_.py 이 파일 의 내용 이 비어 있 습 니 다. touch 명령 으로 이 빈 파일 을 만들어 야 합 니 다.init_.py 이 파일 의 역할 은 python 응용 이나 모듈 을 초기 화 하 는 것 입 니 다. 이 치 는 하나의 구조 함수 로 이해 할 수 있 습 니 다. 구조 함 수 는 비어 있 지만 하나의 종 류 는 구조 함수 가 없 으 면 안 됩 니 다.
4.Error: That IP address can’t be assigned-to.
이것 은 django 를 사용 할 때 입력 합 니 다.
python manage.py runserver http://192.168.1.XX:8080/

오류 stack overflow 에 제 시 된 해결 방안 은?
python manage.py runserver  0:8000

친 측 은 정말 효과 가 있다.
5. 잘못된 명령 으로 서버 메모리 급증
django 프로젝트 내용 을 변경 한 후, 변 경 된 내용 을 업데이트 하기 위해 다시 reload uwsgi 가 필요 합 니 다.하지만 저 는 예전 에 uwsgi - ini / etc / uwsgi / uwsgi. ini 를 사용 하여 한 동안 재 부팅 한 후에 서버 메모리 사용량 이 급 격 히 증가 한 것 을 발 견 했 습 니 다. 프로 세 스 를 보 니 uwsgi 는 수 십 개의 프로 세 스 가 있 었 습 니 다. 원래 제 가 사용 하 는 명령 은 프로 세 스 를 새로 시작 하 는 것 이 고 원래 의 프로 세 스 kill 을 사용 하지 않 기 때문에 사용 합 니 다.
uwsgi --reload /etc/uwsgi/uwsgi.pid

항목 을 업데이트 할 수 있 습 니 다.
이 구 덩이 를 밟 은 후에 나의 nginx 와 uwsgi 는 모두 완벽 하 게 운행 할 수 있 습 니 다. 이런 공유 가 많은 독자 들 과 앞으로 어느 날 흉터 가 좋아 지고 아 픈 자신 을 잊 는 데 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기