수색…


WSGI 응용 프로그램 랩퍼

많은 Flask 응용 프로그램은 시스템 전반의 Python 설치와 별도로 각 응용 프로그램의 종속성을 유지하기 위해 virtualenv 에서 개발됩니다. moden-wsgivirtualenv에 설치되어 있는지 확인하십시오 :

pip install mod-wsgi

그런 다음 Flask 응용 프로그램을위한 wsgi 래퍼를 만듭니다. 일반적으로 응용 프로그램의 루트 디렉토리에 보관됩니다.

my-application.wsgi

activate_this = '/path/to/my-application/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/path/to/my-application')

from app import app as application

이 래퍼는 Apache에서 실행할 때 가상 환경과 설치된 모든 모듈 및 종속성을 활성화하고 응용 프로그램 경로가 검색 경로의 첫 번째인지 확인합니다. 관습에 따라 WSGI 응용 프로그램 개체는 application 이라고 application .

WSGI에 대한 Apache 사이트 사용 가능 구성

내장 된 werkzeug 서버에 비해 아파치를 사용하면 아파치가 멀티 쓰레드 (multi-threaded)라는 장점이있다. 즉, 애플리케이션에 대한 다중 연결을 동시에 할 수 있다는 의미이다. 이 기능은 프런트 엔드에서 XmlHttpRequest (AJAX)를 사용하는 응용 프로그램에서 특히 유용합니다.

/etc/apache2/sites-available/050-my-application.conf (또는 공유 웹 서버에서 호스팅되지 않은 경우 기본 아파치 설정)

<VirtualHost *:80>
        ServerName my-application.org

        ServerAdmin [email protected]

        # Must be set, but can be anything unless you want to serve static files
        DocumentRoot /var/www/html

        # Logs for your application will go to the directory as specified:

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # WSGI applications run as a daemon process, and need a specified user, group
        # and an allocated number of thread workers. This will determine the number
        # of simultaneous connections available.
        WSGIDaemonProcess my-application user=username group=username threads=12
        
        # The WSGIScriptAlias should redirect / to your application wrapper:
        WSGIScriptAlias / /path/to/my-application/my-application.wsgi
        # and set up Directory access permissions for the application:
        <Directory /path/to/my-application>
                WSGIProcessGroup my-application
                WSGIApplicationGroup %{GLOBAL}
                
                AllowOverride none
                Require all granted
        </Directory>
</VirtualHost>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow