우분투 +의 nginx + uwsgi 우분투의 장고 프로젝트 요약을 배포 +의 nginx + uwsgi 배포 장고 프로젝트

우분투 +의 nginx + uwsgi 배포 장고 프로젝트

머리말

장고의 배포가 윈도우에서 IIS 또는 Apache를 사용하는 방법은 여러 가지가있을 수있다, Nginx에가 될 수 있습니다.

의 nginx + uwsgi 방식을 사용하여 모든 요청이 가장 프런트 엔드 서버로 nginx를하고,보다 일반적인 방법 중 하나입니다, 그것은 WEB 통합 관리 요청을 받게됩니다. 자신의 손으로 모든 정적 요청을 nginx에. 그런 다음, nginx를 모든 요청은 장고에 비 정적 uwsgi 통과, 그것은 장고에 의해 처리됩니다, WEB는 요청을 완료합니다. 다리에 비슷한 효과를 Uwsgi 다리의 역할을한다.

지역 개발 장고 프로젝트는 우분투에 uwsgi 서버를 배포하고의 nginx를 구성, 라인에 장고의 nginx + uwsgi +에서 실행 완료합니다. 관련 절차의 다음 컴파일.

1 서버 구성 VIRTUALENV

직접 파이썬 런타임 환경을 사용하지 않으려면, 당신은 설치하고 서버의 가상 ENV를 구성해야합니다. 파이썬 환경의 직접 사용하는 경우이 단계를 건너 뛸 수 있습니다.

  pip install virtualenv

  pip install virtualenvwrapper

우리는 명령을 사용할 수 있도록 환경 변수를 구성해야합니다 :

다음을 추가, ~에서 .bash_profile을 만들기 :

  수출 WORKON_HOME = $ 홈 / .virtualenvs
  수출 PROJECT_HOME = $ HOME / 작업 공간
  소스 /usr/local/bin/virtualenvwrapper.sh

그런 다음 명령을 실행 : 소스 ~ / .bash_profile에를

구성이 완료됩니다. 다음 명령을 사용합니다 :

  mkvirtualenv # its_name 가상 ENV의 작성
  its_name #이 (당신이 its_name를 지정하지 않은 경우)는 기존의 모든 ENV 나열하는 것입니다 낮은 ENV로 전환 workon을
  현재 ENV가 비활성화 # 출구
  rmvirtualenv을 its_name # 가상 ENV 삭제

2, 설치 종속성

첫째, 지역의 개발은 핍 종속성 목록을 보내야합니다.

pip freeze > plist.txt

서버 환경 및 종속 배치 설치에이 파일을 넣습니다.

workon [虚拟环境名称] pip install -r plist.txt -i https://mirrors.tuna.tsinghua.edu.cn # 这里使用清华大学镜像源安装

3, 장고 프로젝트를 수정

당신은 settings.py 파일을 수정해야 디버그 모드를 닫습니다.

DEBUG = False
ALLOW_HOSTS=['*','ipdress'] #加入访问服务器的ip

4 구성 uwsgi

설치 : uwsgi를 설치 PIP

루트 디렉토리에 필요한 장고 프로젝트 (manage.py와 같은 디렉토리), 새로운 uwsgi.ini 파일 구성을 쓰기 :  

코드를 복사
Myweb_uwsgi.ini 파일 # 
[uwsgi] 
소켓 = 8080 # 실제 서비스 포트, 
# 장고 프로젝트 루트 디렉토리 (절대 경로) 
= CHDIR / 홈 / 사용자 이름 / myweb  프로젝트에서 #의 wsgi.py 파일 위치  모듈 = myweb.wsgi  = 마스터 실제 실행하려면 프로세스의 # 4 = 수 처리 = true로 진공使用nginx连接时,使用socket
코드를 복사

uwsgi 명령으로 프로젝트를 시작 myweb_uwsgi.ini 파일을 읽고, myweb 디렉토리 아래 프로젝트로 전환합니다.

启动uwsgi : uwsgi --ini xxx.ini
关闭uwsgi : uwsgi --stop xxx.pid
무게启uwsgi : uwsgi --reload xxx.pid

 상태를 시작합니다 :

코드를 복사
[uWSGI] myweb_uwsgi.ini에서 INI 구성을 받고 
*** 시작 uWSGI 2.0.12 (32 비트)에 [토 3월 12일 13시 5분 6초 2019] ***이 
버전으로 컴파일 : 4.8.4 26 2016년 1월 6시 14분 : 41 
운영 체제 : 리눅스 3.19.0-25 제네릭 # 26 ~ 14.04.1 - 우분투 SMP 금 7월 24일 세계 협정시 21시 18분 0초 2015 
노드 이름 : 우분투 
기계 :는 i686 
클럭 소스 : 유닉스 
감지 CPU 코어의 수 : 2 
현재 작업 디렉토리 : / 홈 / fnngj / pydj / myweb는 
바이너리 경로를 감지 : / usr / 지방 / 빈 / uwsgi 
! 더 내부 라우팅 지원은 PCRE 지원 재 구축! 
/ 가정 / fnngj / pydj / myweb에 CHDIR () 
귀하의 프로세스 번호 제한은 15962입니다 
메모리 페이지 크기는 4096 바이트입니다  
최대 파일 기술자 수를 감지 : 1024
강력한 뮤텍스는 pthread : 잠금 엔진 
천둥 잠금 : 장애인 (당신이 --thunder-잠금을 활성화 할 수 있습니다) 
TCP 주소에 바인딩 uwsgi 소켓 0 : 8000 FD 3 
파이썬 버전 : 3.4.3 (기본 10 월 (14) 2015 년 20:37 : 06) [4.8.4 GCC] 
*** 파이썬 스레드 지원이 비활성화됩니다. 당신은 *** --enable-스레드를 활성화 할 수 있습니다 
0x8b52dc0 초기화 파이썬 주요 통역 
백 로그 (100 개) 연결로 제한됩니다들을 서버 소켓 
노동자 우아한 작업에 대한 당신의 자비은 60 초입니다 
매핑 4 개 코어의 319,920 바이트 (312킬로바이트) 
* ** 운영 모드 : ***는 preforking 
통역 0x8b52dc0 PID의 1 초 WSGI 응용 프로그램 0 (마운트 포인트 = '') 준비 : 7158 (기본 응용 프로그램) 
*** uWSGI 여러 인터프리터 모드에서 실행 *** 
(PID : 7158)를 uWSGI 마스터 과정을 양산 
(uWSGI 노동자 1을 양산 PID : 7160, 코어 : 1) 
uWSGI 작업자 2 스폰 (: 7161, 코어 : PID 1) 
uWSGI 작업자 3 (: 7162, 코어 1 PID) 스폰 
uWSGI 작업자 4 스폰 (: 7163, 코어 : PID 1)
코드를 복사

잘못이 있다면, 우리는 설정 파일이 잘못 설정의 매개 변수를 확인해야합니다보기 시작 정보 uwsgi를합니다.

5, 구성의 nginx

1, nginx를 설치 :

   sudo apt install nginx

2, 디렉토리 구조 :

  / 등의 우분투 Nginx의 구성 파일 / nginx를 디렉토리, 주요 구성 파일 nginx.conf,

      구성 파일 사이트-가능 / 다운 / 디렉토리에있는 fefault 포함 / 사이트 지원 / 링크 파일은 같은 이름을 가지고있다. Nginx에와 아파치 우분투 디렉토리 구조에서, 구성 파일은 기본적으로 동일합니다. )

3, Nginx에이 구성된다 :

  cd /etc/nginx/sites-available
  vim default

     다음과 같이 할 수 있습니다 :  

코드를 복사
# 다음은 nginx.conf 서버에 제공하는 부분이다 
서버 { 
        이 포트에 액세스하는 데 사용되는 # 
        80 듣고 , 
        서버 _ 로컬 호스트가 ;  . UTF-을 캐릭터 세트 (8) , 루트의 / var / WWW / HTML , 인덱스있는 index.html index.htm으로 debian.html - index.nginx ; # 파일 access_log가 로그 /var/log/nginx/access.log ;의 error_log /var/log/nginx/error.log , client_max_body_size의 75M ; #은 위치의 핵심 부분입니다 uwsgi 서비스 연결을 지정 / {는 uwsgi_params 포함 ; # uwsgi 같은 내용 127.0.0.1:8080 uwsgi_pass ; # 30 링크 타임 아웃 uwsgi_read_timeout을 ; } 정적 폴더 설정 # 소재지 / 정적 / {ON 자동 색인 , 별칭 / 홈 / 사용자 이름 / 장고 - 프로젝트 / 정적 /; } # 업로드 폴더 설정 위치 / 미디어 / {ON 자동 색인 , 별칭 / 홈 / 사용자 이름 / 장고 - 프로젝트 / 미디어 / ; 
}
}
코드를 복사

 참고 : 내장 장고 관리 백엔드를 사용하는 경우 방법은 / 정적 구성 할 수 있도록 관리자 정적 디렉토리 장고 관리자 정적 디렉토리에서 다음 소스 또는 관리자 디렉토리 관리자가 프로젝트의 정적 디렉토리에 복사 / 액세스 할 수 없습니다 .

4, nginx를 서비스를 시작합니다.

  nginx를 시작 : 서비스 nginx를 시작
  가까이의 nginx를 : 서비스 nginx를 정지
  다시 시작의 nginx를 : 서비스 nginx를 다시 시작
  보기 상태 : 서비스의 nginx 상태를

  浏览器访问http://localhost/ 可看到django项目已运行。

도 6은, 합산

  1. 테스트 장고 프로젝트, 정상적인 작동을 보장하기 위해;
  2. 설치 uwsgi, 장고 프로젝트 파일, 구성 uwsgi.ini는 uwsgi를 시작합니다;
  3. 의 nginx, 구성 nginx.conf를 설치, nginx를 시작합니다.
  4. 사용자의 권한 설정, 프로젝트 폴더, 폴더 권한 파일 및 데이터베이스 설정을 업로드 할 수 있습니다, 네트워크 사용자는 www가 데이터입니다.
가기 좋은 텍스트 내 관심사 용지 모음

머리말

장고의 배포가 윈도우에서 IIS 또는 Apache를 사용하는 방법은 여러 가지가있을 수있다, Nginx에가 될 수 있습니다.

의 nginx + uwsgi 방식을 사용하여 모든 요청이 가장 프런트 엔드 서버로 nginx를하고,보다 일반적인 방법 중 하나입니다, 그것은 WEB 통합 관리 요청을 받게됩니다. 자신의 손으로 모든 정적 요청을 nginx에. 그런 다음, nginx를 모든 요청은 장고에 비 정적 uwsgi 통과, 그것은 장고에 의해 처리됩니다, WEB는 요청을 완료합니다. 다리에 비슷한 효과를 Uwsgi 다리의 역할을한다.

지역 개발 장고 프로젝트는 우분투에 uwsgi 서버를 배포하고의 nginx를 구성, 라인에 장고의 nginx + uwsgi +에서 실행 완료합니다. 관련 절차의 다음 컴파일.

1 서버 구성 VIRTUALENV

직접 파이썬 런타임 환경을 사용하지 않으려면, 당신은 설치하고 서버의 가상 ENV를 구성해야합니다. 파이썬 환경의 직접 사용하는 경우이 단계를 건너 뛸 수 있습니다.

  pip install virtualenv

  pip install virtualenvwrapper

우리는 명령을 사용할 수 있도록 환경 변수를 구성해야합니다 :

다음을 추가, ~에서 .bash_profile을 만들기 :

  수출 WORKON_HOME = $ 홈 / .virtualenvs
  수출 PROJECT_HOME = $ HOME / 작업 공간
  소스 /usr/local/bin/virtualenvwrapper.sh

그런 다음 명령을 실행 : 소스 ~ / .bash_profile에를

구성이 완료됩니다. 다음 명령을 사용합니다 :

  mkvirtualenv # its_name 가상 ENV의 작성
  its_name #이 (당신이 its_name를 지정하지 않은 경우)는 기존의 모든 ENV 나열하는 것입니다 낮은 ENV로 전환 workon을
  현재 ENV가 비활성화 # 출구
  rmvirtualenv을 its_name # 가상 ENV 삭제

2, 설치 종속성

첫째, 지역의 개발은 핍 종속성 목록을 보내야합니다.

pip freeze > plist.txt

서버 환경 및 종속 배치 설치에이 파일을 넣습니다.

workon [虚拟环境名称] pip install -r plist.txt -i https://mirrors.tuna.tsinghua.edu.cn # 这里使用清华大学镜像源安装

3, 장고 프로젝트를 수정

당신은 settings.py 파일을 수정해야 디버그 모드를 닫습니다.

DEBUG = False
ALLOW_HOSTS=['*','ipdress'] #加入访问服务器的ip

4 구성 uwsgi

설치 : uwsgi를 설치 PIP

루트 디렉토리에 필요한 장고 프로젝트 (manage.py와 같은 디렉토리), 새로운 uwsgi.ini 파일 구성을 쓰기 :  

코드를 복사
Myweb_uwsgi.ini 파일 # 
[uwsgi] 
소켓 = 8080 # 실제 서비스 포트, 
# 장고 프로젝트 루트 디렉토리 (절대 경로) 
= CHDIR / 홈 / 사용자 이름 / myweb  프로젝트에서 #의 wsgi.py 파일 위치  모듈 = myweb.wsgi  = 마스터 실제 실행하려면 프로세스의 # 4 = 수 처리 = true로 진공使用nginx连接时,使用socket
코드를 복사

uwsgi 명령으로 프로젝트를 시작 myweb_uwsgi.ini 파일을 읽고, myweb 디렉토리 아래 프로젝트로 전환합니다.

启动uwsgi : uwsgi --ini xxx.ini
关闭uwsgi : uwsgi --stop xxx.pid
무게启uwsgi : uwsgi --reload xxx.pid

 상태를 시작합니다 :

코드를 복사
[uWSGI] myweb_uwsgi.ini에서 INI 구성을 받고 
*** 시작 uWSGI 2.0.12 (32 비트)에 [토 3월 12일 13시 5분 6초 2019] ***이 
버전으로 컴파일 : 4.8.4 26 2016년 1월 6시 14분 : 41 
운영 체제 : 리눅스 3.19.0-25 제네릭 # 26 ~ 14.04.1 - 우분투 SMP 금 7월 24일 세계 협정시 21시 18분 0초 2015 
노드 이름 : 우분투 
기계 :는 i686 
클럭 소스 : 유닉스 
감지 CPU 코어의 수 : 2 
현재 작업 디렉토리 : / 홈 / fnngj / pydj / myweb는 
바이너리 경로를 감지 : / usr / 지방 / 빈 / uwsgi 
! 더 내부 라우팅 지원은 PCRE 지원 재 구축! 
/ 가정 / fnngj / pydj / myweb에 CHDIR () 
귀하의 프로세스 번호 제한은 15962입니다 
메모리 페이지 크기는 4096 바이트입니다  
최대 파일 기술자 수를 감지 : 1024
강력한 뮤텍스는 pthread : 잠금 엔진 
천둥 잠금 : 장애인 (당신이 --thunder-잠금을 활성화 할 수 있습니다) 
TCP 주소에 바인딩 uwsgi 소켓 0 : 8000 FD 3 
파이썬 버전 : 3.4.3 (기본 10 월 (14) 2015 년 20:37 : 06) [4.8.4 GCC] 
*** 파이썬 스레드 지원이 비활성화됩니다. 당신은 *** --enable-스레드를 활성화 할 수 있습니다 
0x8b52dc0 초기화 파이썬 주요 통역 
백 로그 (100 개) 연결로 제한됩니다들을 서버 소켓 
노동자 우아한 작업에 대한 당신의 자비은 60 초입니다 
매핑 4 개 코어의 319,920 바이트 (312킬로바이트) 
* ** 운영 모드 : ***는 preforking 
통역 0x8b52dc0 PID의 1 초 WSGI 응용 프로그램 0 (마운트 포인트 = '') 준비 : 7158 (기본 응용 프로그램) 
*** uWSGI 여러 인터프리터 모드에서 실행 *** 
(PID : 7158)를 uWSGI 마스터 과정을 양산 
(uWSGI 노동자 1을 양산 PID : 7160, 코어 : 1)
스폰 uWSGI 작업자 2 (PID : 7161, 코어 1) 
uWSGI 작업자 3 (: 7162, 코어 : PID 1) 스폰 
uWSGI 작업자 4 스폰 (: 7163, 코어 : PID 1)
코드를 복사

잘못이 있다면, 우리는 설정 파일이 잘못 설정의 매개 변수를 확인해야합니다보기 시작 정보 uwsgi를합니다.

5, 구성의 nginx

1, nginx를 설치 :

   sudo apt install nginx

2, 디렉토리 구조 :

  / 등의 우분투 Nginx의 구성 파일 / nginx를 디렉토리, 주요 구성 파일 nginx.conf,

      구성 파일 사이트-가능 / 다운 / 디렉토리에있는 fefault 포함 / 사이트 지원 / 링크 파일은 같은 이름을 가지고있다. Nginx에와 아파치 우분투 디렉토리 구조에서, 구성 파일은 기본적으로 동일합니다. )

3, Nginx에이 구성된다 :

  cd /etc/nginx/sites-available
  vim default

     다음과 같이 할 수 있습니다 :  

코드를 복사
# 다음은 nginx.conf 서버에 제공하는 부분이다 
서버 { 
        이 포트에 액세스하는 데 사용되는 # 
        80 듣고 , 
        서버 _ 로컬 호스트가 ;  . UTF-을 캐릭터 세트 (8) , 루트의 / var / WWW / HTML , 인덱스있는 index.html index.htm으로 debian.html - index.nginx ; # 파일 access_log가 로그 /var/log/nginx/access.log ;의 error_log /var/log/nginx/error.log , client_max_body_size의 75M ; #은 위치의 핵심 부분입니다 uwsgi 서비스 연결을 지정 / {는 uwsgi_params 포함 ; # uwsgi 같은 내용 127.0.0.1:8080 uwsgi_pass ; # 30 링크 타임 아웃 uwsgi_read_timeout을 ; } 정적 폴더 설정 # 소재지 / 정적 / {ON 자동 색인 , 별칭 / 홈 / 사용자 이름 / 장고 - 프로젝트 / 정적 /; } # 업로드 폴더 설정 위치 / 미디어 / {ON 자동 색인 , 별칭 / 홈 / 사용자 이름 / 장고 - 프로젝트 / 미디어 / ; 
}
}
코드를 복사

 참고 : 내장 장고 관리 백엔드를 사용하는 경우 방법은 / 정적 구성 할 수 있도록 관리자 정적 디렉토리 장고 관리자 정적 디렉토리에서 다음 소스 또는 관리자 디렉토리 관리자가 프로젝트의 정적 디렉토리에 복사 / 액세스 할 수 없습니다 .

4, nginx를 서비스를 시작합니다.

  nginx를 시작 : 서비스 nginx를 시작
  가까이의 nginx를 : 서비스 nginx를 정지
  다시 시작의 nginx를 : 서비스 nginx를 다시 시작
  보기 상태 : 서비스의 nginx 상태를

  浏览器访问http://localhost/ 可看到django项目已运行。

도 6은, 합산

  1. 테스트 장고 프로젝트, 정상적인 작동을 보장하기 위해;
  2. 설치 uwsgi, 장고 프로젝트 파일, 구성 uwsgi.ini는 uwsgi를 시작합니다;
  3. 의 nginx, 구성 nginx.conf를 설치, nginx를 시작합니다.
  4. 사용자의 권한 설정, 프로젝트 폴더, 폴더 권한 파일 및 데이터베이스 설정을 업로드 할 수 있습니다, 네트워크 사용자는 www가 데이터입니다.

추천

출처www.cnblogs.com/sdlyxyf/p/11356866.html