技术解析

react 项目从 http 换到 https 后所有接口请求失效,请教 nginx 配置
0
2021-05-20 21:32:03
idczone

我的 nginx 配置

server {

	listen 80;
	listen 443 ssl;
    server_name 118.89.143.159;
	
    ssl on;
    ssl_c国外服务器ertificate /etc/nginx/1_www.xilixjd.cc_bundle.crt;
    ssl_certificate_key /etc/nginx/2_www.xilixjd.cc.key;

    location /api {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            proxy_pass http://0.0.0.0:5000/api;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
            root /home/ubuntu/python_react_blog/python_react_blog_front_end;
            index index.html index.htm;
    }

    location /socket.io {
            include proxy_params;
            proxy_http_version 1.1;
            proxy_buffering off;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_pass http://0.0.0.0:5000/socket.io;
    }

}

各位可以访问一下 https://www.xilixjd.cc

接口数据加载不出来

浏览器右键检查 Network 接口显示 Referrer Policy: no-referrer-when-downgrade

另外还想问一下

1.如果想让访问 http://www.xilixjd.cc 的时候跳转到 https 应该怎么实现

2.网址不带 www 访问 xilixjd.cc 的时候也能跳转到 https 完整网址


no-referrer-when-downgrade 是 chrome 自动加的,表示从 https 降级到 http 时不发送 reffer

接口的问题我不知道怎么处理,但是后面两个跳转的问题,可以看我的博客配置 https://bblove.me/2017/04/05/nginx-https-setting-on-multiple-sites/ 。主要就是在监听 80 和 443 中判断下,当前域名是否是 https://www.aaa.cc ,不是就跳转

你这个分明是访问接口时用了 ip 和端口了吧,不应该使用申请证书域名访问然后走 443 端口么?

好的,感谢
那应该怎么弄呢?

1. server_name 应该用你的域名
2. 关键错误: proxy_pass 的主机名写错了,不应该是 0.0.0.0 ,换成 127.0.0.1

3. 你的 js 里面,请求的地址不对
t.DOMAIN="//118.89.143.159:5000" 换成对应的 //www.xilixjd.cc
但是需要保证你的接口可以正确访问(即 proxy_pass 配置正常)


1. server_name 改成我的域名网站就访问不了,不知道原因
2. 我是在后端改成 0.0.0.0 的,用 http 的时候没问题,换成 https 就出错了,刚按你说的改了一下还是不行

我觉得是不是接口没走 https , 如果按 http 访问,如 http://118.89.143.159:5000/api/blog/all 是正常的
但是 https://118.89.143.159:5000/api/blog/all 不正常

https 不支持用 ip 访问,再说你 https 由 nginx 开在 443 端口,你到 5000 端口访问当然不行了

这是配置的什么鬼? https 默认走 443 端口的,这样访问吧 https://www.xilixjd.cc/api/blog/all

好的,感谢
有没有标准的 nginx 配置参考,我这个也是到处抄的野鸡配置

gunicorn 那里改成 127.0.0.1 , nginx 里面的 proxy_pass 也改成 127.0.0.1 , http 走 80 端口, https 走 443 端口,完了 5000 端口吧

忘了

好的,已经弄好了,发现个非常莫名其妙的问题,就是我的后端啥都没变但是后端请求莫名变快了。。

能变快通常就是两个原因:缓存或者 keepalive。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服