nginx + uwsgi 를 사용 하여 django 서 비 스 를 배치 합 니 다.

1956 단어
대체 적 인 절 차 는 nginx 가 서버 의 최 전방 으로 client 의 모든 요청 을 받 고 통일 적 으로 관리 하 는 것 입 니 다.정적 요청 은 Nginx 가 직접 처리 합 니 다.비 정적 요청 은 uwsgi 를 통 해 Django 에 전달 되 고 Django 가 처리 하여 WEB 요청 을 완료 합 니 다.통신 원 리 는:
the web client  the web server(nginx)  the socket  uwsgi  Django

1. nginx 설치
sudo apt-get install nginx

2. uwsgi 설치
pip install uwsgi

3. 테스트 uwsgi
django 프로젝트 루트 디 렉 터 리 에 들 어가 기
uwsgi --http :8001 --plugin python --module blog.wsgi

그리고 127.0.0.1: 8001 을 방문 하여 uwsgi 가 정상적으로 작 동 하 는 지 확인 합 니 다. 이 항목 의 정적 파일 은 불 러 오지 않 습 니 다. nginx 로 정적 파일 대 리 를 해 야 합 니 다.
4. nginx 설정vim /etc/nginx/site-enabled/default 다음 코드 추가
server {
    listen         80;
    server_name      ;   #         ip  
    charset UTF-8;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8003;
        proxy_read_timeout 600;
    }

    #location /static {
    #    alias static  ;
    #}
}

내 정적 파일 이 일곱 개의 구름 에 직접 놓 여 있 기 때문에 여 기 는 설정 할 필요 가 없다.
5. 서비스 시작
sudo /etc/init.d/nginx restart  #   nginx
uwsgi --socket :8003 --plugin python3 --module blog.wsgi  #   uwsgi,     socket   http

6. 문제 발생
  • 504 Gateway Time - out 이 클 라 이언 트 요청 을 시작 할 때 항상 나타 납 니 다 504 Gateway Time-out. 로 그 를 보면 connect() failed (111: Connection refused) while connecting to upstream.인터넷 에서 설정 proxy_read_timeout 을 많이 찾 아 봤 는데 시도 도 안 되 고 결국 원인 을 찾 았 다.pass 명령 은 uwsgi 프로 토 콜 은 socket 만 사용 할 수 있 고 구체 적 으로 도 모른다.

  • 7. 참고
  • [1]http://www.cnblogs.com/jhao/p/6071790.html
  • [2]http://www.cnblogs.com/fnng/p/5268633.html
  • [3]http://stackoverflow.com/questions/32492425/trouble-with-using-nginx-with-django-and-uwsgi
  • 좋은 웹페이지 즐겨찾기