【 Flask 】 flask + uwsgi + nginx 환경 배치

11451 단어
centos 에 fllask 프레임 워 크 를 배치 하 는 환경 에서 저 는 uwsgi 와 nginx 를 선 택 했 습 니 다.
구체 적 인 절 차 는:
nginx + uwsgi 설치 nginx 설정  nginx / 1.12.2 Flask 설치  0.10.1 설치 uwsgi  2.0.16 (64bit) 설치 uwsgi - plugin - python 2.0.16
flask 프로젝트 만 들 기
 1 #!/usr/bin/python
 2 # coding=utf-8
 3 
 4 from flask import Flask
 5 import sys
 6 reload(sys)
 7 
 8 print sys.path
 9 sys.path.append('/home/MySite')
10 sys.setdefaultencoding('utf-8')
11 
12 app = Flask(__name__)
13 
14 
15 @app.route('/')
16 def hello_world():
17     return '           !!!        !'
18 
19 
20 if __name__ == '__main__':
21     app.run(port=8080,debug=True)

flask 가 표 시 될 수 있 는 지 테스트 해 보 세 요.
주의 하 다.
flask 가 직접 실행 되 고 한 대의 컴퓨터 에서 만 볼 수 있 습 니 다. 단일 스 레 드 이기 때 문 입 니 다.
app.run(host='0.0.0.0',port=80)
텐 센트 클 라 우 드 보안 팀 에서 80 포트 를 열 면 접근 할 수 있 습 니 다.
다른 호스트 는 유사 해 야 합 니 다.host 에서 네트워크 주 소 를 입력 하면 시작 할 수 없습니다.
ps.. 마카오 xx 는 텐 센트 운 에 의 해 차단 된다...건강 하고 조화 로 운 내용 으로 바 꿔 주세요.
 
ini 파일 만 들 기
 1 [uwsgi]
 2 base =/home/MySite   
 3 callable = app     #     ,       application
 4 socket = :8081    #     , nginx  
 5 chdir =/home/MySite/   #      
 6 wsgi-file =MySite.py    #  flask     ,       
 7 processes = 4   #4   ,    2   
 8 threads = 2
 9 chmod-socket = 666
10 plugins=python   #  uwsgi-plugin-python          
11 daemonize = mysite.log    # uwsgi     ,     Log
12 #stats = :8082

 
nginx 프로필 수정
 1 user nginx;
 2 worker_processes auto;
 3 error_log /var/log/nginx/error.log;
 4 pid /run/nginx.pid;
 5 
 6 # Load dynamic modules. See /usr/share/nginx/README.dynamic.
 7 include /usr/share/nginx/modules/*.conf;
 8 
 9 events {
10     worker_connections 1024;
11 }
12 
13 http {
14     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
15                       '$status $body_bytes_sent "$http_referer" '
16                       '"$http_user_agent" "$http_x_forwarded_for"';
17 
18     access_log  /var/log/nginx/access.log  main;
19 
20     sendfile            on;
21     tcp_nopush          on;
22     tcp_nodelay         on;
23     keepalive_timeout   65;
24     types_hash_max_size 2048;
25 
26     include             /etc/nginx/mime.types;
27     default_type        application/octet-stream;
28 
29     # Load modular configuration files from the /etc/nginx/conf.d directory.
30     # See http://nginx.org/en/docs/ngx_core_module.html#include
31     # for more information.
32     include /etc/nginx/conf.d/*.conf;
33 
34     server {
35         listen       80;
36         server_name  localhost;
37         location / {
38         include /etc/nginx/uwsgi_params;
39         uwsgi_pass 127.0.0.1:8081;    # ini    
40         uwsgi_param UWSGI_CHDIR /home/MySite;
41         #uwsgi_param UWSGI_SCRIPT View:app;
42         #uwsgi_param SCRIPT_NAME /;
43         #uwsgi_pass unix:/home/MySite/uwsgi.sock;
44         }
45 
46         error_page 404 /404.html;
47             location = /40x.html {
48         }
49 
50         error_page 500 502 503 504 /50x.html;
51             location = /50x.html {
52         }
53     }
54   }

 
uwsgi 시작 명령, 절대 경 로 를 쓰 지 않 으 면 ini 파일 의 현재 경로 에서 실행 해 야 합 니 다.
1 uwsgi --ini abc.ini

 
nginx 시작 명령
/usr/sbin/nginx -c /etc/nginx/nginx.conf

 
이 두 서 비 스 를 시작 하면 플 라 스 크 내용 에 정상적으로 접근 할 수 있 습 니 다.
 
 
 
 

좋은 웹페이지 즐겨찾기