4

我正在尝试通过这些教程http://senko.net/en/django-nginx-gunicorn/http://honza.ca/2011/05/deploying-django-with-nginx使用 nginx 和 gunicorn 设置 django -and-gunicorn

设置:

virtualenv --no-site-packages qlimp
cd qlimp
source bin/activate
pip install gunicorn django
django-admin.py startproject qlimp
cd qlimp
python manage.py runserver 0.0.0.0:8001

Gunicorn 设置与此处相同http://senko.net/en/django-nginx-gunicorn/

所做的更改(run.sh):

LOGFILE=/var/log/gunicorn/qlimp.log
USER=nirmal
GROUP=nirmal
cd /home/nirmal/qlimp/qlimp

Upstart 也与上面链接中的教程相同

所做的更改:

exec /home/nirmal/qlimp/qlimp/run.sh

Nginx 设置:

server {
    listen 80;
    server_name qlimp.com;

    access_log /home/nirmal/qlimp/log/access.log;
    error_log /home/nirmal/qlimp/log/error.log;

    location /static {
         root /home/nirmal/qlimp/qlimp;
    }

    location / {
        proxy_pass http://127.0.0.1:8888;
    }

}

然后我重新启动 nginx 并运行 gunicorn 服务器:

sudo /etc/init.d/nginx restart
(qlimp) cd qlimp/qlimp
(qlimp) gunicorn_django -D -c run.sh

当我运行 gunicorn 服务器时,我收到此错误:

Failed to read config file: run.sh
Traceback (most recent call last):
File "/home/nirmal/qlimp/local/lib/python2.7/site-packages/gunicorn/app/base.py", line  65, in load_config
execfile(opts.config, cfg, cfg)
 File "run.sh", line 3
   LOGFILE=/var/log/gunicorn/qlimp.log
        ^
SyntaxError: invalid syntax

有人可以指导我吗?谢谢!

4

2 回答 2

0

尝试 /etc/gunicorn.d 而不是你自己的 sh 文件

于 2012-05-20T13:37:38.257 回答
0

我在 EC2 上使用 Gunicorn 和 Nginx 配置 Django 应用程序

纳米 /etc/init/site1.conf

description "site1 web server"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec /home/scripts/gunicorn_runserver.sh

在 gunicorn_runserver.sh

#!/bin/bash
  set -e
  LOGFILE=/var/log/nginx/site1.log
  NUM_WORKERS=10
  # user/group to run as
  USER=www-data
  GROUP=adm
  cd /home/projects/project_name/
  #  source ../../bin/activate
  exec gunicorn_django -w $NUM_WORKERS \
    --user=$USER --group=$GROUP --log-level=error \
    --log-file=$LOGFILE 2>>$LOGFILE

Nginx 配置文件

upstream app_server_hana {
server localhost:8000 fail_timeout=0;
}

location  / {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_redirect off;

  if (!-f $request_filename) {
          proxy_pass http://app_server_site1;
          break;
  }
}

最后

/etc/init.d/nginx restart
service site1 start
于 2012-05-25T12:53:51.857 回答