首页 > 解决方案 > “RequestSite”对象没有属性“root_page”

问题描述

我在尝试使用 nginx 和 gunicorn 设置 wagtail 时遇到问题。在 gunicorn 套接字上运行 django 服务器失败,并在“website.com/”处出现 502 错误。但是当我在 localhost 上执行 manage.py runserver 时,我得到 'RequestSite' 对象在 'website.com/local' 中没有属性 'root_page' 我的设置如下。我究竟做错了什么?

NGINX

upstream app_server {
    server unix:/etc/systemd/system/gunicorn.sock fail_timeout=0;
}
server {
   listen 80;
   server_name mywebsite.com;
   keepalive_timeout 5;

   location /static/ {
     alias /home/user/static/;
   }

   location /media/ {
    alias /home/user/media/;
   }

   location /local/ {
    include proxy_params;
    proxy_pass http://localhost:8000;
   }

   location / {
    include proxy_params;
    proxy_pass http://app_server;
   }
}

独角兽

[Unit]
Description=gunicorn 
Requires=gunicorn.socket
After=network.target

[Service]
Type=simple
PIDFile=/run/gunicorn.pid
User=user
Group=user
EnvironmentFile={{etcdir}}/gunicorn.env
WorkingDirectory={{projdir}}/
ExecStart={{projdir}}/venv/bin/gunicorn --config {{etcdir}}/gunicorn.conf.py --chdir /home/user/project project.wsgi:application
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

gunicorn.conf.py

workers = 2
pythonpath = '/home/user/venv/bin/python3'
syslog = True
bind = ['unix:/etc/systemd/system/gunicorn.sock','127.0.0.1:8000',]
umask = 0
loglevel = "info"
user = "user"
group = "user"

生产.PY

DEBUG = False
ALLOWED_HOSTS = ['*',]

SITE_ID = 1
SECRET_KEY = os.environ['SECRET_KEY']
MEDIA_ROOT = "/home/user/media"
STATIC_ROOT = '/home/user/static'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ['DB_NAME'],
        'USER': os.environ['DB_USER'],
        'PASSWORD': os.environ['DB_PASS'],
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

我在用:

标签: djangonginxgunicornwagtail

解决方案


你有可能最近更新了鹡鸰吗?2.9 升级发行说明的一部分,请查看此以获取更多信息 - https://docs.wagtail.io/en/v2.9/releases/2.9.html#sitemiddleware-and-request-site-deprecated


推荐阅读