Python WEB 응용 배치 의 실현 방법

본 고 는 Python WEB 응용 배치 의 실현 방법 을 소개 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.

아파 치 모듈 mod 사용Python WSGI 응용 프로그램 실행
Flask 응용 프로그램 은 WSGI 규범 을 바탕 으로 하기 때문에 WSGI 프로 토 콜 을 지원 하 는 모든 웹 응용 서버 에서 실행 할 수 있 습 니 다.가장 많이 사용 되 는 방식 은Apache+mod_wsgi입 니 다.
Apache 메 인 프로필 은/etc/httpd/conf/httpd.conf 입 니 다.
다른 프로필 은/etc/httpd/conf.d/디 렉 터 리 에 저 장 됩 니 다.
설치 modwsgi
httpd-devel 설치

$ yum install httpd-devel
$ rpm -ql httpd-devel
설치 modwsgi

$ yum install mod_wsgi
설치 가 완료 되면mod_wsgi.soApache modules 디 렉 터 리 에 있 습 니 다.httpd.conf파일 에 다음 내용 을 추가 합 니 다.

LoadModule wsgi_module modules/mod_wsgi.so
설정 을 사용 하려 면 아파 치 를 다시 시작 합 니 다.

$ sudo service httpd restart 
테스트 modwsgi
Apache DocumentRoot 루트 디 렉 터 리 에 파일 만 들 기test.wsgi

def application(environ, start_response):
 status = '200 OK'
 output = 'Hello World!'

 response_headers = [('Content-type', 'text/plain'),
      ('Content-Length', str(len(output)))]
 start_response(status, response_headers)

 return [output]
이 함수application는 WSGI 응용 대상 입 니 다.요청 을 받 은 응답 을 되 돌려 주 는 값 입 니 다.
그리고 아파 치 설정 파일 httpd.conf 를 열 고 마지막 에 URL 경로 맵 을 추가 합 니 다.

WSGIScriptAlias /test /var/www/html/test.wsgi
테스트curl http://localhost/test
Python 가상 환경 사용 하기
virtualenv 는 격 리 된 Python 환경 을 만 드 는 도구 입 니 다.virtualenv 는 Python 프로젝트 에 필요 한 모든 실행 가능 한 파일 과 pip 라 이브 러 리 를 포함 하 는 폴 더 를 만 듭 니 다.
app.wsgi 설정

activate_this = '/var/www/html/py3env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

from flask import Flask
application = Flask(__name__)

import sys
sys.path.insert(0, '/var/www/flask_test')
from app import app as application
우리 의 가상 환경 은 디 렉 터 리/var/www/html에서 사용 하 는 스 크 립 트/bin를 찾 을 수 있 습 니 다.WSGI 애플 리 케 이 션 의 처음부터 실행 하면 됩 니 다.
apache 프로필

<VirtualHost *:80>
 ServerName example.com
 WSGIScriptAlias / /var/www/html/app.wsgi
 <Directory /var/www/html>
  Require all granted
 </Directory>
</VirtualHost>!
레 퍼 런 스
https://www.jb51.net/article/153875.htm
Apache 에서 Python WSGI 응용 프로그램 실행
Nginx+uWSGI 를 사용 하여 Python WSGI 응용 프로그램 을 실행 합 니 다.
uwSGI 는 웹 응용 서버 로 응용 서버,프 록 시,프로 세 스 관리 및 응용 모니터링 등 기능 을 갖 추고 있다.uWSGI 자체 가 웹 서버 로 직접 사용 할 수 있 지만 일반적으로 이 를 응용 서버 로 Nginx 와 함께 사용 하 는 것 을 권장 합 니 다.그러면 Nginx 가 웹 에서 의 강력 한 기능 을 더욱 잘 발휘 할 수 있 습 니 다.
uWSGI 설치

$ pip install uwsgi
창설activate_this.py

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
 return 'Hello World!'


if __name__ == '__main__':
 app.run()
설정 파일 만 들 기server.py

[uwsgi]
http=0.0.0.0:8080 #           
chdir=/var/www/html/#     
wsgi-file=/var/www/html/server.py #         
callable=app #      ,WSGI   "application"
master=true #   (        ,       ,   )
touch-reload=/var/www/html/ #       ,                             。
daemonize=uwsgi.log #    
stats = 127.0.0.1:9090 #       ,      
vacuum = True #                ,
#    &   
processes = 6
threads = 2
시동 을 걸다

uwsgi --ini uwsgi.ini    #   
uwsgi --reload uwsgi.pid   #   
uwsgi --stop uwsgi.pid   #   

Nginx 설정
uWSGI 의 HTTP 포트 감청 을 socket 포트 감청 으로 변경 합 니 다.

socket=127.0.0.1:8080
nginx 프로필 수정 nginx.conf

server {
  listen  80;
  server_name localhost 192.168.1.5;
  #root   /usr/share/nginx/html;

  # Load configuration files for the default server block.
  include /etc/nginx/default.d/*.conf;

  location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8080;
  }
Nginx 는 받 은 모든 요청 을uwsgi포트,즉 uWSGI 서버 에 전송 합 니 다.
Centos 7 SElinux 로 인 한 권한 문제 로 Nginx 가 uWSGI 에 요청 을 전송 할 수 없어 서 꺼 버 렸 습 니 다.uwsgi.ini 127.0.0.1:8080vi /etc/selinux/config로 바꾸다.
nginx 테스트 를 다시 시작 합 니 다.
 
Python 가상 환경 사용 하기

[uwsgi]
...
virtualenv=/home/Smi1e/virtualenv
여러 응용 프로그램 배치

레 퍼 런 스
Python 응용 프로그램 을 실행 하려 면 Nginx 와 uWSGI 를 사용 하 십시오.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기