V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
xilixjd
V2EX  ›  NGINX

react 项目从 http 换到 https 后所有接口请求失效,请教 nginx 配置

  •  
  •   xilixjd · 2017-04-25 11:33:50 +08:00 · 16743 次点击
    这是一个创建于 2767 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的 nginx 配置

    server {
    
    	listen 80;
    	listen 443 ssl;
        server_name 118.89.143.159;
    	
        ssl on;
        ssl_certificate /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 完整网址

    15 条回复    2020-02-11 08:02:49 +08:00
    sujin190
        1
    sujin190  
       2017-04-25 12:40:37 +08:00
    no-referrer-when-downgrade 是 chrome 自动加的,表示从 https 降级到 http 时不发送 reffer
    jackroyal
        2
    jackroyal  
       2017-04-25 12:41:19 +08:00 via Android
    接口的问题我不知道怎么处理,但是后面两个跳转的问题,可以看我的博客配置 https://bblove.me/2017/04/05/nginx-https-setting-on-multiple-sites/ 。主要就是在监听 80 和 443 中判断下,当前域名是否是 https://www.aaa.cc ,不是就跳转
    sujin190
        3
    sujin190  
       2017-04-25 12:42:05 +08:00
    你这个分明是访问接口时用了 ip 和端口了吧,不应该使用申请证书域名访问然后走 443 端口么?
    xilixjd
        4
    xilixjd  
    OP
       2017-04-25 13:24:01 +08:00
    @jackroyal 好的,感谢
    @sujin190 那应该怎么弄呢?
    aru
        5
    aru  
       2017-04-25 13:50:03 +08:00
    1. server_name 应该用你的域名
    2. 关键错误: proxy_pass 的主机名写错了,不应该是 0.0.0.0 ,换成 127.0.0.1
    aru
        6
    aru  
       2017-04-25 13:54:50 +08:00
    3. 你的 js 里面,请求的地址不对
    t.DOMAIN="//118.89.143.159:5000" 换成对应的 //www.xilixjd.cc
    但是需要保证你的接口可以正确访问(即 proxy_pass 配置正常)
    xilixjd
        7
    xilixjd  
    OP
       2017-04-25 14:06:25 +08:00
    @aru
    1. server_name 改成我的域名网站就访问不了,不知道原因
    2. 我是在后端改成 0.0.0.0 的,用 http 的时候没问题,换成 https 就出错了,刚按你说的改了一下还是不行
    xilixjd
        8
    xilixjd  
    OP
       2017-04-25 14:08:38 +08:00
    @aru 我觉得是不是接口没走 https , 如果按 http 访问,如 http://118.89.143.159:5000/api/blog/all 是正常的
    但是 https://118.89.143.159:5000/api/blog/all 不正常
    sujin190
        9
    sujin190  
       2017-04-25 14:19:22 +08:00   ❤️ 1
    @xilixjd #4 https 不支持用 ip 访问,再说你 https 由 nginx 开在 443 端口,你到 5000 端口访问当然不行了
    zhangshine
        10
    zhangshine  
       2017-04-25 14:19:48 +08:00
    这是配置的什么鬼? https 默认走 443 端口的,这样访问吧 https://www.xilixjd.cc/api/blog/all
    xilixjd
        11
    xilixjd  
    OP
       2017-04-25 14:25:44 +08:00
    @sujin190 好的,感谢
    @zhangshine 有没有标准的 nginx 配置参考,我这个也是到处抄的野鸡配置
    zhangshine
        12
    zhangshine  
       2017-04-25 14:35:11 +08:00   ❤️ 1
    gunicorn 那里改成 127.0.0.1 , nginx 里面的 proxy_pass 也改成 127.0.0.1 , http 走 80 端口, https 走 443 端口,完了 5000 端口吧
    zhangshine
        13
    zhangshine  
       2017-04-25 14:35:30 +08:00
    忘了
    xilixjd
        14
    xilixjd  
    OP
       2017-04-25 15:10:38 +08:00
    @zhangshine 好的,已经弄好了,发现个非常莫名其妙的问题,就是我的后端啥都没变但是后端请求莫名变快了。。
    Livid
        15
    Livid  
    MOD
       2020-02-11 08:02:49 +08:00 via iPhone
    @xilixjd 能变快通常就是两个原因:缓存或者 keepalive。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1182 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.