【发布时间】:2021-10-26 21:23:13
【问题描述】:
我刚开始使用 Django,我尝试使用 Nginx 在数字海洋服务器上部署我的项目。我正在尝试设置 SSL 和域(通过 SSL 检查器和 Google Dig DNS 看起来不错),但是一旦我尝试访问网页,浏览器中就会出现 403 错误:
403 禁止 nginx/1.14.0 (Ubuntu)
我一直在尝试使用 Nginx 配置做不同的事情,但似乎没有帮助,这就是我现在所拥有的:
http {
...
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/server_merged_key.crt;
ssl_certificate_key /etc/ssl/other_key.key;
root /var/www/html;
server_name domain.net www.domain.net ;
location / {
root /var/www/html;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
}
...
}
Django 项目位于服务器的主目录,没有目录(只有两个文件夹 /mysite1/mysite/)。服务器启动正常。
在页面上看到 403 错误后,我在服务器端看不到任何 GET 请求。如果我尝试通过 http://IP-IN-NUMBER:8000 访问,我确实看到了 400 错误您正在通过 HTTPS 访问开发服务器,但它只支持 HTTP。
此外,如果这与问题相关,settings.py 看起来像这样:
DEBUG = False
ALLOWED_HOSTS = ['IP-IN-NUMBERS','localhost', '127.0.0.1','HTTP_X_FORWARDED_PROTO', 'https','domain.net'
,'www.domain.net']
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
如何为 Django 正确设置 Nginx?非常感谢您的帮助!
【问题讨论】:
-
好的,所以我将 root 编辑为 /var/www/html 但现在我收到 403 Forbidden 错误。我不知道如何处理。我正在相应地编辑问题。
标签: django nginx https digital-ocean nginx-config