nginx + gunicorn + fastapi 배치 자동 배경 시작
시스템 버 전:
debian9
환경 조합: python3
가상 환경 + fastapi
+ uvicorn
+ gunicorn
프로젝트 루트 디 렉 터 리: /data/wwwroot/domian.com
공식 문서 에 서 는 IP:PORT
형식 으로 시작 fastapi
되 지만 매번 가상 환경 에 들 어가 명령 을 통 해 시작 gunicorn
해 야 하기 때문에 매우 번거롭다.나중에 systemd
+ gunicorn
방식 으로 바 꾼 후에 켜 지면 자동 으로 작 동 gunicorn
되 고 포트 를 차지 하지 않 습 니 다.구체 적 배치
fastapi
는 별도로 글 을 써 서 설명 하 는데 본 글 은 nginx
+ systemd
+ gunicorn
의 배치 방식 만 말한다.대략적인 방안
다음 파일 새로 만 들 기:
/etc/systemd/system/gunicorn.service
/etc/systemd/system/gunicorn.socket
nginx
의 conf
파일 에는 대리 ip:prot
형식 이 아니 라 대리 sock
파일 이 들 어 있다.구체 적 절차
/etc/systemd/system/gunicorn.service
: [Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
Type=notify
# the specific user that our service will run as
User=gunicorn
Group=www
# another option for an even more restricted service is
# DynamicUser=yes
# see http://0pointer.net/blog/dynamic-users-with-systemd.html
RuntimeDirectory=gunicorn
# WorkingDirectory
WorkingDirectory=/data/wwwroot/domian.com
# ,
# gunicorn -c gconfig.py main:app -k uvicorn.workers.UvicornWorker
# gunicorn gconfig.py
ExecStart=/data/wwwroot/luejiao.com/venv/bin/gunicorn -c /data/wwwroot/luejiao.com/gconfig.py main:app -k uvicorn.workers.UvicornWorker
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
[Install]
WantedBy=multi-user.target
/etc/systemd/system/gunicorn.socket
: [Unit]
Description=gunicorn socket
[Socket]
# ListenStream sock , 。 。
ListenStream=/data/wwwroot/domian.com/domian.com_gunicorn.sock
# Our service won't need permissions for the socket, since it
# inherits the file descriptor by socket activation
# only the nginx daemon will need access to the socket
User=www-data
# Optionally restrict the socket permissions even more.
# Mode=600
[Install]
WantedBy=sockets.target
nginx
의 domian.conf
다른 설정 은 쓰 지 않 습 니 다. 주로 /
대리 부분 입 니 다.location / {
# ip , sock
# proxy_pass http://127.0.0.1:3002;
# unix sock , 。
proxy_pass http://unix:/data/wwwroot/domian.com/domian.com_gunicorn.sock;
}
조작 명령
다시 시작
nginx
하면 자동 으로 생 성 domian_gunicorn.sock
되 고 도 메 인 이름 을 열 어 fastapi
응용 프로그램 이 정상적으로 시작 되 었 는 지 확인 합 니 다.systemctl reload nginx.service
systemctl restart nginx.service
시동 걸 고 바로 시작
gonicorn.socket
:systemctl enable gunicorn.socket --now
다른 작업 명령:
: systemctl start gunicorn.service
:systemctl status gunicorn.service
:systemctl stop gunicorn.service
:systemctl restart gunicorn.service
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.