Django+Uwsgi+Nginx 생산 환경 배치 실현
uWSGI 는 웹 서버 로 WSGI 프로 토 콜,uwsgi,http 등 프로 토 콜 을 실현 했다.Nginx 에서 HttpUwsgiModule 의 역할 은 uWSGI 서버 와 교환 하 는 것 이다.
WSGI/uwsgi/uwsgi 라 는 세 가지 개념의 구분 에 주의해 야 한다.
WSGI 는 웹 서버 게 이 트 웨 이 인터페이스 이다.이것 은 웹 서버(예 를 들 어 nginx,uWSGI 등 서버)와 웹 응용 프로그램(예 를 들 어 Flask 프레임 워 크 로 쓴 프로그램)이 통신 하 는 규범 이다.
uwsgi 는 통신 프로 토 콜 이 아 닌 회선 프로 토 콜 로 uwsgi 서버 에서 다른 네트워크 서버 와 의 데이터 통신 에 자주 사용 된다.
uWSGI 는 uwsgi 와 WSGI 두 가지 협 의 를 실현 한 웹 서버 다.
uwsgi 프로 토 콜 은 uwsgi 서버 자체 의 프로 토 콜 로 정 보 를 전송 하 는 유형(type of information)을 정의 하 는 데 사 용 됩 니 다.모든 uwsgi packet 전 4byte 는 전송 정보 유형 에 대한 설명 으로 WSGI 에 비해 두 가지 입 니 다.
설치
pip install uwsgi
윈도 우즈 지원 하지 않 음테스트 시작
테스트 파일 을 만 들 고 쓰기:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World! powerde by wsgi'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output.encode('utf8'),]
명령 실행:
uwsgi --http :8080 --file test.py
브 라 우 저가 이 포트 에 접근 하면 정상 적 인 상황 에서 출력 을 얻 을 수 있 습 니 다.django
uwsgi --http :8080 --file django_project/wsgi.py
페이지 에 접근 할 수 있 지만 정적 파일 을 불 러 올 수 없습니다.필요 합 니 다.
uwsgi --http :8080 --file django_project/wsgi.py --static-map=/static=static
정적 파일 을 불 러 올 수 있 습 니 다.매개 변수 설명:
uwsgi 프로필 시작 django 프로젝트
uwsgi 가 지원 하 는 인자 가 많 습 니 다.설정 파일 에 쓸 수 있 습 니 다.프로젝트 동급 디 렉 터 리 에 uwsgi.ini 파일 만 들 기:
# uwsig
[uwsgi]
#
chdir=/opt/webvirtcloud/
# application
module=webvirtcloud.wsgi:application
# sock
socket=/tmp/uwsgi.sock
#
workers=5
pidfile=/tmp/uwsgi.pid
# IP
http=0.0.0.0:8080 # ngxin ,
#
static-map=/static=/opt/webvirtcloud/static
# uwsgi
uid=root
gid=root
#
master=true
# unix Socket pid
vacuum=true
# ,
thunder-lock=true
#
enable-threads=true
#
harakiri=30
#
post-buffering=4096
#
daemonize=/var/log/uwsgi.log
더 많은 매개 변 수 를 볼 수 있 습 니 다:https://uwsgi-docs.readthedocs.io/en/latest/Options.html실행 명령:uwsgi--ini uwsgi.ini,명령 은 셸 터미널 을 사용 하지 않 습 니 다.셸 연결 을 끊 어도 페이지 에 접근 할 수 있 습 니 다.
어떻게 닫 거나 다시 시작 해 야 합 니까?
uwsgi --stop /tmp/uwsgi.pid
설정 nginxNginx 프로필 을 찾 으 면 가상 도 메 인 이름 으로 가상 도 메 인 이름 에 쓰 십시오.
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080; // uwsgi socket
client_max_body_size 35m;
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.