我正在使用Django编写RESTful应用程序,并使用以下conf在uwsgi中运行它:
...
socket = 127.0.0.1:8001
...
我正在使用带有以下conf的Nginx
# listen on 80 and 443
server {
root /var/www/html;
index index.html;
server_name ...;
location / {
try_files $uri /index.html;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate ...;
ssl_certificate_key ...
include ...
ssl_dhparam ...
}
server {
listen 8000;
server_name ...;
location / {
uwsgi_pass 127.0.0.1:8001;
include uwsgi_params;
}
}
server {
if ($host = ...) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name ...;
return 404; # managed by Certbot
}
端口80/443上的Nginx正在处理一个前端项目,该项目将向https://[site.url]:8000/
发出请求,然后浏览器将抛出诸如ERR_SSL_PROTOCOL_ERROR
之类的错误。
如果我尝试直接访问https://[site.url]:8000
,则浏览器会告诉我
“此网站无法提供安全的连接 [site]发送了无效的回复。 ERR_SSL_PROTOCOL_ERROR“
RESTful服务在GET http://[site]:8000/xxx/
之类的HTTP请求上可以正常工作。但是我不能在前端使用HTTP请求,因为它由于不安全而被浏览器阻止。
如何使RESTful服务通过HTTPS连接正常工作?