python 3 + Django + uwsgi + nginx 배치 노트
운영 체제: Ubuntu 16.04.3Python 버 전: 3.5.2Django 버 전: 2.0.4nginx 버 전: 1.10.3
본 플랫폼 은 텐 센트 클 라 우 드 1 핵 1G 시스템 이다.
내 프로젝트 파일 이름:
dgutpsy
pip 3 설치 (python 3 pip)
sudo apt-get install python3-pip
설치 완료 후 실행
pip3
등장설치
pip install uwsgi
uwsgi 운행 상태 테스트
새 파일 test. py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
어떤 튜 토리 얼 은
return "hello world"
그러나 이렇게 하면 방문 공백 이 발생 할 수 있 습 니 다. 저 는 Python 3 환경 입 니 다. hello World 에 대한 인 코딩 이 필요 합 니 다.
만약 당신 이 Python 2 의 환경 이 라면, 당신 은 써 야 합 니 다.
return "hello world"
이 파일 을 uwsgi 로 실행 합 니 다.
uwsgi --http :8000 --wsgi-file test.py
이 문장의 뜻 은
uwsgi test.py , http , 8000
페이지 방문
자, 친절 한 헬 로 월 드 를 볼 수 있다 는 것 은 uwsgi 운행 이 성공 했다 는 것 을 의미한다.
TIPS: 만약 당신 이 접근 할 수 없다 면, 먼저 텐 센트 클 라 우 드 보안 팀 포트 가 8000 포트 를 열 었 는 지 확인 하 십시오.
Django 설치
pip3 install Django
python 3 에서 import django 가 잘못 보고 하지 않 으 면 설치 에 성공 합 니 다.
항목 코드 업로드
이제 프로젝트 코드 를 올 리 겠 습 니 다.
MobaXterm 의 sftp 도 구 를 사용 하여 끌 어 들 여 [웃 으 며 울 음] 왜 ftp 를 사용 하지 않 는 지 묻 지 마 세 요. 이게 편 해 요.
코드 가 정상적으로 작 동 하 는 지 확인 합 니 다.
프로젝트 디 렉 터 리 를 잘라 서 실행 합 니 다.
python3 manage.py runserver 0.0.0.0:8000
페이지 방문
그다지이 건 ALLOWED 를 설 치 했 기 때 문 입 니 다.HOSTS 의 이유
저희 가 setting. py 에 설정 을 해 보도 록 하 겠 습 니 다.
ALLOWED_HOSTS = ['*']
페이지 재 방문
OK!
uswgi 실행 항목
uwsgi --http :8000 --chdir /home/ubuntu/dgutpsy --wsgi dgutpsy.wsgi
이 문장의 뜻 은 위 와 비슷 하 다. 단지 작업 경로 와 wsgi 파일 이 하나 더 생 겼 을 뿐이다
장난 해?변 함 이 없다 고 생각 하 십 니까?
여기에 이르다
우 리 는 잠시 아래 의 내용 을 정할 수 있다.
설치 nginx
sudo apt-get install nginx
nginx 운행 상태 테스트
nginx 설치 성공
nginx 설정 수정
파일 경로
"/etc/nginx/sites-enabled/default"
더 이상 nginx. conf 를 찾 지 마 세 요. 새 버 전 은 이미 이 파일 이 없습니다.
나의
upstream django {
server 127.0.0.1:8001; #web socket
}
server {
listen 80 default_server;
listen [::]:80 default_server;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
root /home/ubuntu/dgutpsy; #
uwsgi_pass django;
include /home/ubuntu/dgutpsy/uwsgi_params; #uwsgi_params
}
}
완전한 uwsgiparams 파일 내용 은
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
이 파일 이 없 거나 이 파일 을 잘못 쓰 면 잘못 보고 할 수 있 습 니 다.
액세스 테스트 502
이것 은 우리 의 socket 통신 이 아직 시작 되 지 않 았 기 때문이다!
nginx 와 uwsgi 통신
hello World 테스트 먼저 사용 하기
uwsgi --socket :8001 --wsgi-file test.py
테스트 페이지 방문
이로써: nginx 와 uwsgi 통신 성공!
TIPS: socket 프로 토 콜 이기 때문에 브 라 우 저 에서 8001 포트 를 방문 하여 시작 여 부 를 판단 할 수 없습니다.
배경
이렇게 하면 괜 찮 을 것 같 지만 ssh 를 닫 으 면 502 가 나타 납 니 다!
이 ssh 프로 세 스 를 닫 았 을 때 uwsgi 프로 세 스 도 종료 되 었 기 때 문 입 니 다. 그리고 시작 할 때마다 긴 명령 을 져 야 합 니 다. 귀 찮 지 않 습 니 다!
이 럴 때, 우 리 는 필요 한 것 이 있 습 니 다. 그것 이 바로 ini 프로필 시작 입 니 다. 그 중에서
daemonize = /home/ubuntu/dgutpsy/test.log
은 배경 에서 로그 출력 디 렉 터 리 를 실행 하고 규정 한 다 는 뜻 입 니 다.새 test. ini
[uwsgi]
socket = 127.0.0.1:8001
wsgi-file = /home/ubuntu/dgutpsy/test.py
daemonize = /home/ubuntu/dgutpsy/test.log
uwsgi --ini test.ini
niginx 와 Django 프로젝트 통신
새 dgutpsy. ini
[uwsgi]
socket = 127.0.0.1:8001
chdir = /home/ubuntu/dgutpsy
module = dgutpsy.wsgi
master = true
processes = 1
threads = 2
max-requests = 6000
daemonize = /home/ubuntu/dgutpsy/run.log
그리고 실행
uwsgi --ini dgutpsy.ini
도 메 인 이름 맵
도 메 인 이름 추가 > 분석
consult.psyannabel.cn
페이지 방문후기:
Q & A: Q: manage. py 로 실행 할 수 있 는데 왜 uwsgi 를 사용 합 니까?
A: 단일 프로 세 스 의 manage. py, 웹 서버 uwsgi 와 비교 할 수 있 습 니 다.
Q: uwsgi 를 사용 할 수 있 는데 왜 nginx 를 사용 합 니까?
A: uwsgi 는 웹 서버 이지 만 정적 파일 을 처리 할 때 nginx 가 우수 하지 않 습 니 다.
Q: 대략적인 절차?
A: nginx 는 웹 처리 http 요청 을 실행 하고 nginx 는 socket 을 사용 하여 uwsgi 와 통신 하여 동적 부분 을 uwsgi 에 넘 겨 처리 합 니 다.
Q: 왜 내 test. py 가 실행 되 지 않 습 니까?
A: 포트 개방 에 문제 가 없다 면 Python 버 전에 대응 하 는 return 을 확인 하 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu 22.04에 캐디 설치 - HostnExtra이 기사에서는 Ubuntu 22.04에 Caddy를 설치하는 방법을 설명합니다. 이 문서는 설치 프로세스를 안내하고 웹 사이트를 호스팅합니다. Caddy 웹 서버는 Go로 작성된 오픈 소스 웹 서버입니다. Ubunt...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.