2017-09-12 8 views
1

내 프로젝트에 wsgi.ini 파일이 있고 내 프로젝트를 실행하는 데 uwsgi wsgi.ini을 사용합니다. 그러나 장고 코드를 변경하면 프로젝트를 다시 시작하고 대신 uwsgi를 다시로드하려고합니다. uwsgi 공식 문서는 다음과 같은 방법을 제공합니다. # using kill to send the signal kill -HUP `cat /tmp/project-master.pid` # or the convenience option --reload uwsgi --reload /tmp/project-master.pid # or if uwsgi was started with touch-reload=/tmp/somefile touch /tmp/somefile project-master.pid 파일은 /tmp 카탈로그에 있습니다. 내 시스템 (centOS)에 있습니다.uwsgi restart django 사용 방법

내 질문 :

  1. 방법 uwsgi 장고 대신하여 다음을 죽이기 시작 다시 사용할 수 있나요?
  2. uwsgi 공식 문서 제공 방법을 사용하는 경우 .pid 파일을 만드는 방법과이 파일에 어떤 내용을 포함해야합니까?
+0

먼저 uWSGI를 시작하는 방법을 보여줘야합니다. –

+0

wsgi.ini 파일이 내 프로젝트에 있는데, 다음 명령을 사용하여 장고를 시작합니다 : uwsgi wsgi.ini – cherry

+0

이것은 내 'uwsgi.ini' 파일입니다 : [uwsgi] 소켓 = 127.0.0.1:8833 chdir =/home/wangcai/서버/international_lottery 모듈 = international_lottery.wsgi 마스터 = TRUE 프로세스 = 4 진공 = TRUE 버퍼 사이즈 = 32768 = 데몬으로 /home/wangcai/log/uwsgi.log – cherry

답변

1

나는 anwser를 찾았습니다. project-master.pidwsgi.ini 파일에 설정되어 있으므로 먼저 pidfile=/tmp/project-master.pid을 설정해야합니다. 그런 다음 uwsgi를 사용하여 서버를 시작하십시오 : uwsgi wsgi.ini. 시작한 후 project-master.pid 파일이 /tmp 카탈로그에 있습니다. uwsgi 서버를 다시로드하려면 해당 명령을 사용하여 서버를 다시 시작하십시오 : uwsgi --reload /tmp/project-master.pid.

0

지역 개발 요구 사항에 uWSGI 서버를 사용할 필요가 없습니다. Apache/uWSGI는 프로덕션을위한 것이므로 모든 코드 변경시 암시 적으로 재시작하는 것이 바람직하지는 않습니다. 실제로 코드가 변경된 후에도 프로덕션 서버가 다시 시작되지 않으면 안전망 역할을하므로 배포를 완료하지 않고 서버를 다시 시작하지 않아도됩니다.

그냥 inbuild 서버를 사용하여 장고 자체를 제공합니다.

python manage.py runserver 8000 
+0

사실, uWSGI를 사용 프로덕션 환경에서 서버를 종료 한 다음 시작하면 일부 사용자에게 영향을 줄 수 있습니다. 그래서 서버를 다시 시작하는 방법을 원하고 사용자에게 영향을주지 않습니다. – cherry

+0

@Cherry는 진행중인 요청이 먼저 처리되도록 우아하게 다시 시작합니다. – hspandher

+0

예,이 효과를 원합니다. – cherry