我徒劳地尝试建立一个在django下运行的演示网站。 天蓝色,我们有2个可从公共地址访问的虚拟机。 该网站必须在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无法提供正确的文件或不提供任何服务。感谢您将来的回答。
答案 0 :(得分:0)
在Azure上打开端口8008,作业完成。