关于Nginx连接的Django拒绝

时间:2017-11-11 17:50:07

标签: python django nginx

我想在nginx webserver + gunicorn上运行我的django应用程序。 我已经按照教程设置了大部分内容,并且达到了我需要设置Nginx的程度。 我有我的应用程序:

/home/ec2-user/davidbien

这也是我的virtualenv安装的地方。 在davidbien文件夹里面我有以下脚本guni.sh:

#!/bin/bash

NAME="test"                                  
DJANGODIR=/home/ec2-user/davidbien             
SOCKFILE=/home/ec2-user/virtual/run/gunicorn.sock 
USER=ec2-user                                        
GROUP=ec2-user                                     
NUM_WORKERS=3                                      
DJANGO_SETTINGS_MODULE=davidbien.settings            
DJANGO_WSGI_MODULE=davidbien.wsgi                    

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR
source ../virtual/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

# Start your Django Unicorn
# (do not use --daemon)
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=-

这似乎运行正常,因为我在运行时没有得到任何东西。我也可以使用

运行应用程序
gunicorn davidbien.wsgi:application --bind 0.0.0.0:8000

这很好用。

现在,我进入nginx设置。 我安装了它并在/ etc / nginx /中创建了两个文件夹 - sites-available和sites-enabled。 然后我在sites-available中创建了一个test.conf文件,并在下面插入了以下代码:

upstream app_server_djangoapp {
server 35.177.26.219:8000 fail_timeout=0;
}

server {
listen 80;
server_name 35.177.26.219;

access_log  /var/log/nginx/guni-access.log;
error_log  /var/log/nginx/guni-error.log info;

keepalive_timeout 5;

# path for static files
root /home/ec2-user/davidbien/davidbien/static;

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_djangoapp;
        break;
    }
  }
}

我还编辑了nginx.conf文件,如下所示:

http {
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
keepalive_timeout   65;
types_hash_max_size 2048;

include             /etc/nginx/mime.types;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /sites-enabled/*.*;

 # Load configuration files for the default server block.
 include /etc/nginx/default.d/*.conf;
 }

我重新启动nginx并收到此错误:

无法访问此网站 35.177.26.219拒绝联系。

检查日志后我发现了这个:

2017/11/11 17:21:43 [error] 3524#0: *1 connect() failed (111: Connection refuseed) while connecting to upstream, client: 2.96.149.96, server: 35.177.26.219, request: "GET /favicon.ico HTTP/1.1", upstream: "http://35.177.26.219:8000/favicon.ico", host: "35.177.26.219", referrer: "http://35.177.26.219/"

道歉,需要冗长的解释。 现在的问题是,出了什么问题? 感谢。

EDIt:根据Marco的评论,来自gunicorn的日志:

usage: gunicorn [OPTIONS] [APP_MODULE]
gunicorn: error: No application module specified.

EDIT2:编辑的gunicorn剧本。

0 个答案:

没有答案