403 禁止访问,Nginx 配置

403 Forbidden, Nginx config

我刚开始使用 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 请求。我确实看到 400 错误您正在通过 HTTPS 访问开发服务器,但它仅支持 HTTP。如果我尝试通过 http://IP-IN-NUMBER:8000.

访问

此外,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?非常感谢您的帮助!

好的,所以我在额外的帮助下弄明白了,我会给出答案以防对其他人有帮助。基本上我只需要将我的 Django 文件放在 /var/www/html 的根目录下,这样它们就可以与索引文件放在一起了。这样 Nginx 允许访问这个目录并且不会抛出 403 错误。