Python에는 많은 웹 개발 프레임워크가 있습니다. 일반적으로 웹 애플리케이션은 3계층 구조의 웹 서버입니다. ---->application -----> server
주요 웹 서버는 한 손에 꼽을 수 있는 apache, lighttpd, nginx, iis
application, 한자로는 application service라고 하는데, 이는 특정 웹 프레임워크를 기반으로 작성하는 애플리케이션 코드입니다. 일반적으로 스토리지 서비스를 말하며, 웹 개발에서 mysql과 비교되는 경우가 많습니다. 최근에는 웹사이트 규모의 확장으로 인해 memcache, redis 등의 키-값 스토리지도 전면에 배치됩니다. 기능 정적 파일을 효율적으로 처리합니다. 웹 서버는 IO 및 파일 전송의 최적화를 통해 C 개발 및 호출 기본 기능을 사용합니다.
쉬움
conf 파일은 구성이 매우 쉽고 apache/lighttpd보다 간단합니다.Python으로 개발된 웹 프로그램 배포 9가지 방법이 있습니다
mod_python은 Apache의 내장 모듈입니다. Python 버전 mod_python을 사용하여 Apache와 함께 사용하는 것은 권장되지 않습니다.
웹 서버 내장 지원 프로토콜입니다. 모듈
애플리케이션 서버 프로토콜 지원 모듈프로세스 제어 프로그램
nginx에는 0.8.4부터 uwsgi 프로토콜이 내장되어 있습니다. uwsgi 프로토콜은 4바이트 헤더 + 본문으로 매우 간단합니다. http, cgi 등과 같은 많은 프로토콜(내부에 표시된 헤더 필드를 통해)에 대해 소규모 성능 비교 테스트를 수행한 적이 있습니다. 결과에 따르면 fastcgi와 비교할 때 uwsgi는 뚜렷한 성능 이점이 없을 수도 있습니다. uwsgi의 특징은 프로세스 제어 프로그램과 함께 제공되며 C 언어로 작성되었으며 실제로는 generate-fcgi/php-fpm과 유사합니다. 따라서 uwsgi는 (python, lua, ruby, erlang, go) 등을 포함한 다양한 애플리케이션 프레임워크를 지원할 수 있습니다.
fastcgi는 바이너리 프로토콜이지만 http 프로토콜에 비해 리소스를 절약하지 않습니다. 바이너리 프로토콜은 1234567과 같은 숫자 표현만 저장할 수 있습니다. 문자열로 표현하려면 7바이트, 숫자로 표현하려면 4바이트가 필요하며 문자열은 어디에서나 동일합니다
fastcgi가 데이터를 전송할 때 CGI 프로토콜과 호환되려면 많은 cgi 환경 변수도 가져와야 하므로 http 프로토콜에 비해 fastcgi를 사용하여 데이터를 전송하는 것은 경제적이지 않지만 비용이 더 많이 듭니다
fastcgi의 유일한 장점은 Fastcgi는 10개의 링크를 사용하여 백엔드 애플리케이션으로 전달할 수 있으며, 원하는 만큼 요청을 보낼 수 있습니다. 백엔드 애플리케이션에 대한 HTTP 프록시 전달 방법은 동시성이 매우 높을 때 나타납니다. 문제는 tcp 프로토콜 스택에서 포트가 int16 정수이기 때문입니다. 최대 65536개의 포트를 사용합니다. 수십만 개의 외부 동시 요청, 포트 풀이 고갈되고 서버가 응답을 거부할 수만 있습니다
요약
제 개인적인 습관은 fastcgi 프로토콜을 사용하여 Python 프로그램을 배포하는 것인데, 이는 간단하고 문제가 없습니다. 기술적인 솔루션을 선택하려면 가장 간단하고 가장 일반적으로 이 블로그의 fastcgi 실행 스크립트는 다음과 같습니다
kill - `cat / tmp / django.pid` echo 'restart django....' python . / manage.py runfcgi - - settings = lutaf.settings_r maxchildren = maxspare = minspare = method = prefork pidfile = / tmp / django.pid host = 127.0 . 0.1 port = outlog = / tmp / dj.out errlog = / tmp / dj.error
모든 사람이 Gunicorn을 사용해 보는 것이 좋습니다. 이것이 향후 개발 방향입니다
위 내용은 Python 웹 프로그램의 9가지 배포 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!