Dotcloud에 내 장고 앱을 배포했습니다.Nginx 및 사용자 지정 서비스로 정적 파일을 제공합니다. Dotcloud
저는 Gevent와 django-socketio가있는 웹 소켓을 사용하고 있습니다. 그래서 맞춤 서비스를 사용했습니다. 지금 당장은 여전히 작동하도록 'runserver_socketio'를 사용하고 있습니다.
이제 Nginx를 사용하여 정적 파일을 제공하고 싶습니다. 나는 이것을 찾았다 : https://github.com/dotcloud/nginx-on-dotcloud
나는 그것을 사용하려고 노력했다. 여기 내 dotcloud.yml입니다 :
www:
type: custom
buildscript: nginx/builder
processes:
app: /home/dotcloud/env/bin/python myproject/manage.py runserver_socketio 0.0.0.0:$PORT_WWW
nginx: nginx
ports:
www: http
systempackages:
- libevent-dev
- python-psycopg2
- libpcre3-dev
db:
type: postgresql
그리고 내 애플 리케이션의 루트에 'nginx'폴더를 추가했습니다.
403 Forbidden, nginx/1.0.14
그리고 Nginx에 봉사 않습니다 : 내 응용 프로그램에 갈 때, 내가 밀어 후, 나는 오류가
nginx_config_template="/home/dotcloud/current/nginx/nginx.conf.in"
if [ -e "$nginx_config_template" ]; then
sed > $HOME/nginx/conf/nginx.conf < $nginx_config_template \
-e "s/@[email protected]/${PORT_WWW:-42800}/g"
else
echo "($nginx_config_template) isn't there!!! Make sure it is in the correct location or else nginx won't be setup correctly."
fi
그러나 :
나는 또한 나의 사후의 끝에 추가 오류 페이지 404.
그래서 이유는 모르겠지만 더 이상 내 앱에 액세스 할 수 없습니다. Nginx로 내 앱을 설정할 수있는 방법에 대한 아이디어가 있습니까?
당신에게 내가 당신의 문제는 당신이 http 포트 (80)를 위해 싸우는 두 개의 서로 다른 프로세스를 가지고있다 생각
nginx 또는 그 앞에 앱을 넣으시겠습니까? - 앱을 nginx 뒤에두면 더 이상 웹 소켓을 사용할 수 없습니다. - 당신이 nginx의 앞에 응용 프로그램을 넣으면, 나는 당신이 nginx에서 아무것도 얻을 수 있을지 모르겠다. 그래서 그 뒤에있는 이유를 이해하려고 노력하고 있습니다! – jpetazzo
nginx 폴더가 dotcloud 앱 또는 django 앱의 루트에 있습니까? 'nginx : nginx'는 nginx 프로세스가 nginx 사용자로 실행될 것이라고 믿게합니다. nginx 사용자가 nginx 폴더의 파일을 읽을 수있는 권한이 있습니까? – Enrico
@jpetazzo 내 정적 파일을 제공하기 위해 nginx를 사용하지 않고 nginx 앞에 내 앱을 넣지 않아도됩니다. Django가 내 정적 파일 제공을 중단 할 것이므로 runserver_socketio로 내 응용 프로그램을 실행하고 있으므로 DEBUG 모드를 False로 설정할 수 없습니다. 그래서 서버를 사용해야합니다. 나는 프로그래밍에 익숙하지 않아서 무엇이 최선의 방법인지 모르겠습니다. 네가 나에게 줄 수있는 충고를 할게. 답변 주셔서 감사합니다. – Marcolac