无法在特定端口上使用 nginx 访问 django 网站,连接超时

can't access to django web site with nginx on specific port, connection timed out

我尝试在django下建立一个演示网站运行,但没有成功。 在 azure 上,我们有 2 个虚拟机可以从 public 地址访问。 该网站必须在 Azure 虚拟机上启动。 两个虚拟机都部署了一个 nginx 服务器,但是当我在另一个端口上的第二个虚拟机上启动一个 nginx 服务器时,它超时了。在我看来,这是一个配置问题。

我使用的配置基于nginx、gunicorn、supervisor、django。

这是 django /site_show/miss_site/miss_site/setting.py 文件:

ALLOWED_HOSTS = ["*"]
STATIC_ROOT = '/site_show/miss_site/static/'
MEDIA_ROOT= os.path.join(BASE_DIR, 'media/')
MEDIA_URL= "/site_show/miss_site/media/"
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',)
SITE_ID = 1

一些 django 文件:

/site_show/miss_site/manage.py
/site_show/miss_site/media and /site_show/miss_site/static/
also /site_show/miss_site/templates/ where the index.html is

nginx 的配置文件

upstream sample_project_server {
  server unix:/site_show/miss_site/gunicorn.sock fail_timeout=0;
}
server {
    listen   8008;
    server_name *public_address*;
    client_max_body_size 4G;
    access_log /site_show/miss_site/logs/nginx-access.log;
    error_log /site_show/miss_site/logs/nginx-error.log warn;
    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect http;
        if (!-f $request_filename) {
            proxy_pass http://sample_project_server;
            break;
        }
    }
    location /static/ {
        autoindex on;
        alias   /site_show/miss_site/static/;
    }
    location /media/ {
        autoindex on;
        alias   /site_show/miss_site/media/;
    }

启动脚本:

NAME="showcase"                                                                                         
DJANGODIR=/site_show/miss_site                                                                                               
SOCKFILE=/site_show/miss_site/gunicorn.sock                                                                            
USER=www-data                                                                                 
GROUP=www-data                                                                               
NUM_WORKERS=3                                                              
DJANGO_SETTINGS_MODULE=miss_site.settings                                                                                
DJANGO_WSGI_MODULE=miss_site.wsgi                                                                                                                   
echo "Starting $NAME as `whoami`"

# Activate the virtual environment                                                                                                                                    

cd $DJANGODIR
source /site_show/site_env/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
themselves (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=-

和supervisor.conf文件:

[program:site_show]
command = /site_show/miss_site/./lauch_script.sh
user = www-data
stdout_logfile = /var/log/site_show/gunicorn_supervisor.log
redirect_stderr = true
environment=LANG=fr_FR.UTF-8,LC_ALL=fr_FR.UTF-8

经过很多小时的尝试,nginx 没有提供正确的文件或没有提供任何东西。感谢您以后的回答。

在 Azure 上打开端口 8008,工作完成。