Python의 웹 프로젝트를 기반으로 하는 일반적인 배포 방법은 다음과 같습니다.
nginx 설치
apt-get install nginx-full nginx-commonnginx 구성/etc/nginx/sites-enabled/example
server { listen 80; server_name 10.1.6.79; access_log /var/log/nginx/example_access.log; error_log /var/log/nginx/example_error.log; root /var/www/example; location / { uwsgi_pass 127.0.0.1:9001; include uwsgi_params; uwsgi_param uwsgi_scheme $scheme; uwsgi_param server_software nginx/$nginx_version; } }
uwsgi 설치
apt-get install uwsgi uwsgi-plugin-pythonuwsgi를 모두 설치하고 싶다면 플러그인을 사용하면 uwsgi-plugin-all 소프트웨어 패키지를 설치할 수 있습니다uwsgi 구성/etc/uwsgi/apps-enabled/default.xml
<uwsgi> <plugin>python</plugin> <socket>127.0.0.1:9001</socket> <pythonpath>/var/www/example/app/</pythonpath> <app mountpoint="/"> <script>wsgi_configuration_module</script> </app> <master/> <processes>4</processes> <reload-mercy>8</reload-mercy> <cpu-affinity>1</cpu-affinity> <max-requests>2000</max-requests> <limit-as>512</limit-as> <reload-on-as>256</reload-on-as> <reload-on-rss>192</reload-on-rss> <no-orphans/> <vacuum/> </uwsgi>uwsgi 구성 파일의 매개변수는 uwsgi 명령을 통해 지정할 수도 있습니다 xml을 제외한 구성 파일 형식 외에도 ini 형식으로 작성할 수도 있습니다. 소프트웨어 패키지가 설치된 후 /usr/share/doc/에 xml 및 ini 형식 구성 파일의 몇 가지 예가 있습니다. uwsgi/examples/conffile 디렉토리. wsgi_configuration_module.py 스크립트 내용
#!/usr/bin/python import os import sys sys.path.append('/var/www/example/app') os.environ['python_egg_cache'] = '/var/www/example/.python-egg' 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]
uwsgi 시작을 위한 매개변수
uwsgi -x /etc/uwsgi/apps-enabled/default.xml --daemonize /var/log/uwsgi/app/default.loguwsgi:
-m은 마스터 프로세스를 시작합니다.
-p 4는 4개의 프로세스를 시작합니다.
-s 사용된 포트 또는 소켓 주소
-d 사용 da emon의 실행 모드입니다. -d를 사용한 후에는 -d /var/log/uwsgi.log
와 같은 로그 파일 주소를 추가해야 합니다. -r 10000 10,000개의 프로세스를 시작한 후 자동으로 다시 생성됩니다
-t 30 시간 초과를 30초로 설정합니다. 시간 초과 후 링크는 자동으로 삭제됩니다
-limit-as 32 프로세스의 총 메모리를 32m으로 제어합니다
-x 프로필 모드 사용
uwsgi -s :9090 -w myapp -p 4주 제어 스레드 + 스레드 4개
uwsgi -s :9090 -w myapp -m -p 430초 이상 실행되는 클라이언트는 바로 폐기됩니다
uwsgi -s :9090 -w myapp -m -p 4 -t 30메모리 공간은 128m로 제한됩니다
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128reqs가 10,000개 이상인 서비스는 자동으로 다시 생성됩니다
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128 -r 10000백그라운드 실행 등
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128 -r 10000 -d uwsgi.loguwsgi 명령으로 직접 시작하는 것 외에도 init.d 아래의 스크립트가 시작되지만 먼저 /etc/default/u wsgi에서 기본 구성 파일의 경로를 수정한 다음 사용할 수도 있습니다. /etc/init.d/uwsgi start
#inherited_config=/usr/share/uwsgi/conf/default.ini inherited_config=/etc/uwsgi/apps-enabled/default.xml
Start nginx
/etc/init.d/nginx start효과는 다음과 같습니다.
브라우저 입력 IP: 포트: 192.168.1.99:9090
"축하합니다!!! uwsgi 테스트 OK!!!"를 볼 수 있습니다.
위 내용은 Nginx 및 uWSGI를 사용하여 Python 웹 프로젝트를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!