wsgi 예제
이제 WSGI 호환 응용 프로그램의 기본 구조에 익숙해졌으니 이제 보다 실용적인 예제를 실험할 수 있습니다. 아래에서 우리는 그에 따라 인사 응용 프로그램에 대한 제공 된 `이름`을 게시 간단한 양식을 클라이언트를 제공합니다. 전달할 수 있는 선택적 키가 많지만 몇 가지 필수 키가 있습니다. 예제로 다음 GET 요청: 액세스된 경로는 WSGI 환경의 PATH_INFO 변수에 저장되며, SCRIPT_NAME의 응용 프로그램에 대한 실제 경로입니다. 개발 서버 SCRIPT_NAME의 경우 비어 있지만 http://example.com/wiki 탑재된 위키가 있는 경우 SCRIPT_NAME 변수는 /wiki가 됩니다. 이제 이 정보를 사용하여 멋진 URL을 사용하여 여러 개의 비역할 페이지를 제공할 수 있습니다. 아시다시피 start_response 호출 가능은 응용 프로그램이 클라이언트로 데이터를 다시 보내는 데 사용할 수 있는 쓰기를 반환했지만 응용 프로그램 코드 예제에서는 사용되지 않았습니다. 이 쓰기 인터페이스는 더 이상 사용되지 않으며 지금은 무시할 수 있습니다. 이 문서의 후반부에서 간략하게 설명될 것입니다. 간단한 “Hello World” 예제부터 시작해 보겠습니다. 그렇게 했다면 대부분의 경우 사용자가 액세스 할 수있는 여러 개의 공용 파일 (.pl / .php)이 있다는 것을 알 수 있습니다. WSGI에서는 그렇지 않습니다. 모든 경로를 사용하는 파일은 하나뿐입니다.
따라서 이전 예제에서 서버가 계속 실행 중인 경우 http://localhost:8080/foo?subject=John 동일한 콘텐츠를 얻어야 합니다. 이러한 규칙을 만족하고 동일한 효과를 생성하는 개체의 또 다른 예는 다음과 같습니다. 이 예제에서와 같이 미들웨어를 쉽게 만들 수 있습니다. 적어도 자신의 WSGI 응용 프로그램을 설치하기 전에 mod_wsgi가 올바르게 작동하는지 확인하기 위해 실행되는 예제를 얻으십시오. 매우 간단한 WSGI 응용 프로그램 및 이 문서의 예제에 사용 해야 하는 응용 프로그램은 다음과 같습니다:이 예제에서는 정규식의 무리를 가지고 그에 대 한 현재 요청 일치: webapp 배포에 대 한 일반적인 문제는 “붙어 요청”을 요청합니다. 모든 스레드/작업자가 막혀 있고(요청 시 차단됨) 앱에서 더 많은 요청을 수락할 수 없습니다. 이 문제를 방지하려면 하라키리 타이머를 설정할 수 있습니다. 지정된 수 초 이상 붙어있는 프로세스를 파괴하는 모니터 (마스터 프로세스에 의해 관리됨)입니다 (harakiri 값을 신중하게 선택하십시오). 예를 들어 30초 이상 차단된 작업자를 파괴할 수 있습니다.
예를 들어 플라스크 앱은 WSGI 앱이므로 log_environ을 Flask 응용 프로그램에 쉽게 볼트할 수 있습니다. 여기에 안녕하세요 세계를 말한다 WSGI 응용 프로그램의 간단하지만 너무 간단한 예! URL 매개 변수를 통해 월드를 지정할 수 있습니다. 예를 들어 WSGI 서버를 작성하는 경우 다음과 같은 응용 프로그램에 요청 본문을 제공할 수 있습니다. WSGI 응용 프로그램이 이전 예제와 같이 응용 프로그램이라고 하면 랩핑하기만 하면 됩니다. 배포에 따라 CentOS, RHEL 등을 사용하는 경우 /etc/httpd/conf.d/example.com.conf에 저장하거나 데비안, 우분투 등에 대해 /etc/apache2/conf.d/example.com.conf에 저장합니다. start_response 콜백에 전달된 헤더 인수는 각 튜플(header_name, header_value)으로 구성된 파이썬 튜플 목록이어야 합니다.