한동안 플라스크를 배웠지만 배포한 적이 없어서 어떻게 배포할지 고민하다가 먼저 서비스를 올려볼까 고민을 하게 되었습니다. 여기서 선택은 Flask+uwsgi+Nginx+Ubuntu입니다. 저는 Python 2.7.2를 선택했습니다. 이것은 Ubuntu 시스템과 함께 제공되는 것입니다. 현재는 소프트웨어 연결을 거치지 않고도 쉽게 배울 수 있습니다. python3으로 작성하겠습니다. 일단 이것부터 시작하겠습니다. 일단 알아내면 최적화하기가 매우 쉬울 것입니다. 사실 저는 많은 원리에 대해 잘 모릅니다. 먼저 이것을 설정하고 그 내부의 논리를 천천히 이해해 봅시다.
Nginx는 로드 밸런싱으로 사용할 수 있는 효율적인 웹 서버이자 역방향 프록시 서버입니다(n명의 사용자가 서버에 액세스하면 서버에 대한 부담을 덜어주고 공유할 수 있음). Nginx는 Apache와 비교하여 지원합니다. 동시성이 높고 수백만 개의 TCP 연결과 수십만 개의 동시 연결을 지원할 수 있습니다. 배포가 간단하고 메모리를 덜 소비하며 비용이 저렴합니다. 그러나 Nginx에는 Apache만큼 많은 모듈이 없습니다. Nginx는 uWSGI의 uwsgi 프로토콜을 지원하므로 Nginx를 uWSGI와 결합할 수 있으며 Nginx는 처리를 위해 동적 콘텐츠를 uWSGI에 전달합니다. uwsgi_pass
uwsgi
uWSGI는 WSGI 프로토콜, uwsgi, http 및 기타 프로토콜을 구현하는 웹 서버입니다. Nginx에서 HttpUwsgiModule의 기능은 uWSGI 서버와 교환하는 것입니다. WSGI/uwsgi/uWSGI의 세 가지 개념의 차이점에 주의하세요.sudo apt-get install python-pip다음 명령어로 이동하세요. 플라스크
pip install flask를 설치한 후 테스트할 수 있습니다. 플라스크 가져오기오류가 보고되지 않아 플라스크가 성공적으로 설치되었음을 증명할 수 있습니다. 이제 우리가 해야 할 일은 ngnix와 uwsgi를 설치하는 것입니다.
sudo apt-get install nginx설치 후 먼저 시작할 수 있습니다. nginx는 직접 명령줄 시작으로 간단하고 조잡합니다. 이렇게 하면 nginx가 성공적으로 시작됩니다. 다음으로 pip를 사용하여 uwsgi를 설치합니다. 설치한 후 시작하겠습니다. 먼저 hellowflak 아래에 앱의 Python 패키지를 만듭니다.
#app/__init__.pyfrom flask import Flask app = Flask(__name__)from app import view다음으로 view.py
from app import app @app.route('/')def index():return 'hellow'를 만듭니다. 그런 다음 hello.py
from app import appif __name__ == "__main__": app.run()를 만듭니다. 앱과 동일한 디렉터리에 있으면 Python을 사용하여 프로그램을 로컬에서 디버깅할 수 있습니다. 그런 다음 브라우저에서 확인하고 주소를 입력하면 다음과 같은 내용을 얻을 수 있습니다. 우리 플라스크 프로그램에는 문제가 없습니다. 그럼 다음으로 해야 할 일은 nginx가 웹 서비스를 맡게 하는 것입니다. 내가 여기서 하는 일은 간단하고 무례하게 nginx 구성 파일을 삭제하는 것입니다
$ sudo rm /etc/nginx/sites-enabled/default다음으로 hellowflask 아래에 구성 파일을 만들었습니다
server { listen 8081; server_name 127.0.0.1; charset utf-8; client_max_body_size 75M; location / { try_files $uri @app; } location @app { include uwsgi_params; uwsgi_pass 127.0.0.1:9000; } }약간의 설명: server_name은 도메인 이름일 수도 있고, IP 주소를 쓰세요. uwsgi_pass는 Nginx와 uwsgi 간의 통신 방법을 나타냅니다. 여기서 선택한 것은 지정된 포트 번호입니다. 그런 다음 구성을 nginx에 소프트 연결해 보겠습니다.
<code class="hljs groovy">sudo ln -s <span class="hljs-regexp"><span class="hljs-regexp">/home/liwanlei/Desktop/hellowflask/<span class="hljs-regexp">helloflask_nginx.conf /etc<span class="hljs-regexp">/nginx/conf.d/<br>这样我们再去启动我们的nginx,</span></span></span></span></code>
sudo /etc/init.d/nginx restart여기 있는 것은 환영이 아니라 502 오류입니다. 현재 uwsgi 파일이 아직 구성되지 않았고 uwsgi를 시작하지 않았기 때문에 다음 단계는 이 uwsgi를 가져오는 것입니다. 나 구성.
[uwsgi] base = /home/liwanlei/Desktop/hellowflask app = hello#module = %(app)pidfile = /var/run/uwsgi.pid master = true wsgi-file = /home/liwanlei/Desktop/hellowflask/hello.py pythonpath = /usr/bin/python chdir = /home/liwanlei/Desktop/hellowflask socket = 127.0.0.1:9000callable = app logto = %n.log plugins = python processes = 8master = true이제 uwsgi가 구성되었으니 시작해 보겠습니다.
sudo /usr/bin/uwsgi --ini/home/liwanlei/Desktop/hellowflask/helloflask_uwsgi.ini
我们去重新启动我们的nginx,
<code class="hljs bash">sudo nginx <span class="hljs-_">reload<br>平滑重启可以用用,重新加载配置文件,用新的工作进程代替旧的工作进程。<br></span></code>
sudo nginx -s reload
<code class="hljs bash"><span class="hljs-_"><br>启动后,我这里修改了地址,这里就可以直接访问了,那么我们的部署这样就算可以了,简单的。<br><img src="https://img.php.cn/upload/article/000/000/001/25f4d9be3a729ae5fc17c2fefb915c9c-3.jpg" alt=""></span></code>
<br>
完工之后,感觉还是很简单的 有问题那么就去看log,只要log配置得当,那么排除错误是很快的。
위 내용은 Python 배포에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!