我在 docker 機器上運行 django。一切正常,但是當我想登錄管理站點時,我得到 403 禁止
Origin checking failed - https://example.com does not match any trusted origins.
我嘗試添加一些其他設定,例如:
ALLOWED_HOSTS = [
"example.com",
"127.0.0.1",
"localhost",
]
CSRF_TRUSTED_ORIGIN = ["https://example.com"]
if PRODUCTION:
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
正如這里和這里所提到的,但它也不起作用。
這是我的 nginx 設定:
server {
server_name example.com;
location = /favicon.ico {
access_log off;
log_not_found off;
}
location /static/ {
alias /home/example/data/static/;
}
location /media/ {
alias /home/example/data/media/;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
我該如何解決這個錯誤?
uj5u.com熱心網友回復:
我設法通過添加以下內容來修復此錯誤:
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
進入 django 設定和
include proxy_params;
進入nginx配置
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/505151.html
