Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当响应对Django API的请求时,会发生net::ERR\u SSL\u PROTOCOL\u错误_Django_Reactjs_Nginx_Django Rest Framework_Gunicorn - Fatal编程技术网

当响应对Django API的请求时,会发生net::ERR\u SSL\u PROTOCOL\u错误

当响应对Django API的请求时,会发生net::ERR\u SSL\u PROTOCOL\u错误,django,reactjs,nginx,django-rest-framework,gunicorn,Django,Reactjs,Nginx,Django Rest Framework,Gunicorn,堆栈:AWS Lightsail、React、DRF、Django、Gunicorn、NGINX 我使用Let's Encrypt创建了证书 ※我关注这个网站: 所以,我可以访问https://mydomain 没有错误 但当React调用Django API时,会发生net::ERR\u SSL\u PROTOCOL\u错误 我想我需要在DRF,Django设置一些东西 导致在syslog和/var/log/nginx/error.log中没有记录错误 我在谷歌上搜索,但找不到我想要的 我能

堆栈:AWS Lightsail、React、DRF、Django、Gunicorn、NGINX

我使用Let's Encrypt创建了证书

※我关注这个网站:

所以,我可以访问https://mydomain 没有错误

但当React调用Django API时,会发生net::ERR\u SSL\u PROTOCOL\u错误

我想我需要在DRF,Django设置一些东西

导致在syslog和/var/log/nginx/error.log中没有记录错误

我在谷歌上搜索,但找不到我想要的

我能征求你的意见吗?多谢各位


编辑:下面是NGINX的conf文件

server {
    listen 80;
    server_name mydomain;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mydomain;

    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain/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

    location / {
        root /react_project_path/build;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

server {
    listen 8000;
    server_name mydomain;

    charset utf-8;

    location / {
        include proxy_params;
        proxy_pass https://unix:/django_project_path/gunicorn.sock;
    }

    location /static/ {
        alias /django_project_path/static/;
    }

    location /media/ {
        alias /django_project_path/media/;
    }
}

编辑:netstat结果


编辑:现在我检查日志

我刚刚添加了一行代码

server {
    listen 443 ssl http2;
    server_name mydomain;

    error_log /var/log/nginx/error.log debug;

    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ...
下面是NGINX的error.log。(我在这里编辑了私有的路径、令牌和会话。)

在这一点上,

我认为流量并没有到达Django甚至GUnicorn,并且似乎被NGINX中的SSL错误阻塞了

但我仍然认为我没有足够的信息来找到错误的原因


请给我一个建议,谢谢。

解决方案非常简单,只需在听到8000后添加“ssl”

...
server {
    listen 8000 ssl;
    server_name mydomain;

    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain/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

    charset utf-8;

    location / {
        include proxy_params;
        proxy_pass https://unix:/django_project_path/gunicorn.sock;
    }

    location /static/ {
        alias /django_project_path/static/;
    }

    location /media/ {
        alias /django_project_path/media/;
    }
}

我相信您应该添加SSLcertificate@dsfx3d添加什么?您的意思是在NGINX的conf中添加证书的路径?您是否已在项目apache conf文件中添加了证书?@ShahidTariq apache?但是我使用NGINX。它们都是web服务器。所以我卸载了不必要的Apache。还需要吗?您可以检查服务器上的conf文件,并检查它是否包含您创建的证书的路径吗
...
server {
    listen 8000 ssl;
    server_name mydomain;

    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain/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

    charset utf-8;

    location / {
        include proxy_params;
        proxy_pass https://unix:/django_project_path/gunicorn.sock;
    }

    location /static/ {
        alias /django_project_path/static/;
    }

    location /media/ {
        alias /django_project_path/media/;
    }
}