Nginx 와 uWSGI 를 설정 하여 Django 실행 환경 구축

3892 단어
얼마 전에 알 리 클 라 우 드 의 ECS 를 사용 해 보 았 습 니 다. Django 로 작성 한 블 로 그 를 배치 해 보 려 고 했 는데 많은 문제 가 생 겼 습 니 다. Tvt 가 구 글 에서 찾 아 낸 방법 은 모두 오래된 것 이 라 문 제 를 해결 할 수 없 었 습 니 다. 그래서 더 듬 어 보 았 습 니 다. 마지막 으로 공식 문서 가 인류의 좋 은 친구 라 고 할 수 밖 에 없 었 습 니 다. (팔 이 부족 하고 다리 가 부족 한 우 리 는 잠시 무시 합 시다)
업데이트 및 설치 에 필요 한 패키지
제 가 사용 하 는 시스템 은 64 비트 의 CentOS 6.5 입 니 다.
yum -y update
yum install -y epel-release sqlite-devel zlib-devel.x86_64 openssl-devel.x86_64 python-devel

PCRE 설치
다운로드 및 압축 해제
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
tar zxvf pcre-8.37.tar.gz

컴 파일 설치
cd pcre-8.37
./configure
make && make install

설치 완료 후 버 전 번호 확인 가능 pcre-config --versionNginx 설치
제 가 사용 하 는 것 은 1.8.0 stable 버 전 입 니 다. 먼저 다운로드 한 다음 에 디 렉 터 리 에 압축 을 풀 고 컴 파일 설 치 를 합 니 다. 여기 서 직접 명령 을 내 려 자세 한 설명 을 하지 않 습 니 다.
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx
make && make install

uWSGI 설치
파 이 썬 을 업그레이드 한 블 로그 에 pip 도 설치 되 어 있어 서 이제 도움 이 되 었 습 니 다.
pip install uwsgi

Django 설치
pip install django

여기까지 설치 할 물건 을 모두 준 비 했 습 니 다. 지금부터 설정 을 시작 하 겠 습 니 다.
배치 하 다.
uWSGI 설정
만약 에 우리 가 Django 라 는 프로젝트 가 있다 면 blog 경 로 는 /var/www/blog/ 입 니 다. 지금 이 프로젝트 의 디 렉 터 리 에 들 어가 서 blog.ini 파일 을 새로 만 들 고 다음 과 같은 내용 을 추가 합 니 다.
[uwsgi]
uid = www
gid = www

chdir = /var/www/blog
module = blog.wsgi

master = true
processes = 10

socket = /tmp/blog.sock
chmod-socket = 664

vacuum = true

daemonize = /var/www/blog/blog.log

Nginx 설정
Nginx 실행 에 사용 할 사용자 ww 만 들 기:
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

Nginx 프로필 편집 nginx.conf
vi /usr/local/nginx/conf/nginx.conf

첫 번 째 줄 #user nobody;user www www; 로 바 꾼 다음 에 아래 두 줄 을 찾 아서 주석 을 빼 세 요 #
#error_log  logs/error.log;
#pid        logs/nginx.pid;

그리고 http {} 블록 안의 맨 아래 에 다음 과 같은 내용 을 추가 합 니 다.
upstream blog {
  server unix:///tmp/blog.sock;
}

server {
  listen 8000;
  server_name .example.com;

  charset utf-8;

  client_max_body_size 75M;

  location /media {
    alias /var/www/blog/media;
  }

  location /static {
    alias /var/www/blog/static;
  }

  location / {
    uwsgi_pass blog;
    include uwsgi_params;
  }

짜 잔!우 리 는 이미 Nginx 의 기본 설정 을 완 료 했 습 니 다. 더 많은 Nginx 의 구체 적 인 설정 을 알 고 싶 으 면 공식 적 으로 제공 하 는 전체 설정 예 시 를 참고 하 십시오.
시작 테스트
Nginx 열기
Nginx 를 시작 하기 전에 설정 파일 의 문법 을 검사 합 니 다.
/usr/local/nginx/sbin/nginx -t

오류 없 음 확인 후 Nginx 시작
/usr/local/nginx/sbin/nginx

이 때 다음 과 같은 오류 가 발생 할 수 있 습 니 다.
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

아래 의 이 명령 만 집행 하면 문 제 를 해결 할 수 있다.
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

Nginx 의 일반적인 명령 은
/usr/local/nginx/sbin/nginx -s reload|reopen|stop

각각 프로필 을 다시 읽 고 다시 시작 하고 정지 합 니 다.
uWSGI 열기
Nginx 를 시작 한 후, uWSGI 를 시작 합 니 다.
uwsgi --ini /var/www/blog/blog.ini

시작 에 성공 하면 Nginx 설정 server_name 에 대응 하 는 ip 또는 도 메 인 이름 에 접근 할 수 있 습 니 다. 예 를 들 어 이 설정 예제 와 같이 저 희 는 접근 할 수 있 습 니 다.http://example.com:8000만 든 블 로 그 를 볼 수 있 습 니 다!
더 많은 참고 문서
Another nginx.conf Full Example Setting up Django and your web server with uWSGI and nginx How To Serve Django Applications with uWSGI and Nginx on Ubuntu 14.04
본문 은 블 로그 TNK 비동기 접속 ~

좋은 웹페이지 즐겨찾기