Nginx + uWSGI + Flask + Vhost
2. 설정: / etc / nginx / conf. d / virtual. conf
server {
listen 80;
server_name app1.mydomain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; #uwsgi ip, 9090 uwsgi
uwsgi_param UWSGI_PYHOME /opt/pyenv/flask_0.8; # python virtualenv
uwsgi_param UWSGI_CHDIR /var/pywww/app1; #
uwsgi_param UWSGI_SCRIPT main:app; # main.py app callble uwsgi
}
}
server {
listen 80;
server_name app2.mydomain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
uwsgi_param UWSGI_PYHOME /opt/pyenv/flask_0.8;
uwsgi_param UWSGI_CHDIR /var/pywww/app2;
uwsgi_param UWSGI_SCRIPT test:apppp; # , test.py apppp callble uwsgi
}
}
3. 테스트 용 flask 입구 만 들 기 / var / pyww / app 1 / 아래 main. py 만 들 기
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello app1!"
/ var / pyww / app 2 / 아래 test. py 만 들 기
from flask import Flask
apppp = Flask(__name__)
@apppp.route("/")
def sadfa():
return "Hello app2!"
4. 실행 및 접근
uwsgi:
uwsgi -s :9090 -M -p 4 --vhost --no-site
nginx:
service nginx start
- s 후 ip: port 병발 4 개 스 레 드: uwsgi - s: 9090 - p 4 메 인 제어 스 레 드 + 4 개 스 레 드: uwsgi - s: 9090 - M - p 4 실행 30 초 이상 클 라 이언 트 직접 포기: uwsgi - s: 9090 - M - p 4 - t 30 메모리 공간 128 M: uwsgi - s: 9090 - M - p 4 - t 30 - limit - as 128 #--limit - as 이 매개 변 수 는 문제 가 있 는 것 같 습 니 다. 시작 할 수 없 으 면 로그 에 "/ operator. so: failed to map segment from shared object: Cannot allocate memory unable to load app 0" 을 표시 합 니 다.이 매개 변 수 를 제거 합 니 다. 서비스 가 10000 개가 넘 는 req 자동 respawn: uwsgi - s: 9090 - M - p 4 - t 30 -- limit - as 128 - R 10000 배경 에서 실 행 됩 니 다. uwsgi - s: 9090 - M - p 4 - t 30 -- limit - as 128 - R 10000 - d uwsgi. log -- no - site: do not import site. py on startup 은 여러 사이트 에서 uwsgi 서 비 스 를 공유 하기 위해 서 입 니 다.uwsgi 를 가상 사이트 로 실행 해 야 합 니 다: uwsgi - s: 9090 - M - p 4 - t 30 -- limit - as 128 - R 10000 - d uwsgi. log -- vhost 그리고 -- uid 와 -- chroot 두 매개 변 수 는 다른 자 료 를 참고 하여 사용 해 야 합 니 다.
이렇게 하면 uwsgi 프로 세 스 한 세트 만 열 면 app 1. my domain. com 과 app 2. my domain. com 두 도 메 인 이름 의 두 프로그램 을 실행 할 수 있 습 니 다.nginx 는 도 메 인 이름 에 따라 9090 포트 에 있 는 uwsgi 프로 세 스 를 감청 하기 위해 서로 다른 uwsgi 파 라 메 터 를 보 냅 니 다. uwsgi 가 지정 한 경 로 를 찾 아 해당 하 는 프로그램 을 찾 고 지정 한 virtualenv 로 지정 한 입구 callble 을 실행 하여 요청 파 라 메 터 를 전송 합 니 다.
uwsgi 시작 매개 변수 에 -- pidfile = / tmp / procject - master. pid 를 kill 로 재 부팅 신 호 를 보 내 면 업 데 이 트 된 프로그램 이 적 용 됩 니 다. kill - TERM ` cat / tmp / procject - master. pid ` 더 많은 신호 참조:http://projects.unbit.it/uwsgi/wiki/uWSGISignals
자세 한 내용 은 uWSGI Example 및 Nginx + uWSGI 설정 상세 설명, Nginx + uWSGI 배치 Django 응용 을 참고 하 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.