• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wljn
V2EX  ›  程序员

[小白求助] nginx 问题 !

  •  
  •   wljn · Aug 30, 2023 · 2525 views
    This topic created in 1010 days ago, the information mentioned may be changed or developed.
    加了 auth_basic 密码验证 ,苹果手机上的浏览器打开网址后一片空白,安卓和 win 都正常


    server {
    listen 80;
    server_name test.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    }
    }


    nginx 日志

    49.87.0.xx - 123456 [30/Aug/2023:10:39:33 +0000] "GET / HTTP/1.1" 200 228 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"
    49.87.0.xx - 123456 [30/Aug/2023:10:39:33 +0000] "GET /main.css HTTP/1.1" 304 0 "http://test.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"
    49.87.0.xx - 123456 [30/Aug/2023:10:39:33 +0000] "GET /bundle.js HTTP/1.1" 304 0 "http://test.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"
    49.87.0.xx - - [30/Aug/2023:10:39:33 +0000] "GET /?action=multiplex HTTP/1.1" 401 179 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1"
    Supplement 1  ·  Aug 30, 2023
    server{
    listen 80;
    server_name test.com;
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 ssl http2;
    server_name test.com;

    ssl_certificate "/etc/nginx/ssl/test.com.cer";
    ssl_certificate_key "/etc/nginx/ssl/test.com.key";

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";

    }
    }
    https 密码验证后 依旧只有 ios 浏览器打开网址空白
    15 replies    2023-08-31 13:15:43 +08:00
    yinmin
        1
    yinmin  
       Aug 30, 2023
    启用 SSL 试试
    wljn
        2
    wljn  
    OP
       Aug 30, 2023
    @yinmin 之前 启用了 也是一样 去掉密码就正常
    Zhuzhuchenyan
        3
    Zhuzhuchenyan  
       Aug 30, 2023
    分别试一下以下两个链接,一个是 Https ,一个是 Http ,如果 Https 正常但是 Http 不正常,那就是 Safari 的安全策略

    https://httpbin.org/basic-auth/user/passwd

    http://httpbin.org/basic-auth/user/passwd

    如果两个都无法正常弹出登录框,那就是浏览器的问题
    wljn
        4
    wljn  
    OP
       Aug 30, 2023
    @Zhuzhuchenyan 问题不是弹登录框 是登陆后 页面空白
    wljn
        5
    wljn  
    OP
       Aug 30, 2023
    @Zhuzhuchenyan 是我没把问题说清楚
    KingFong
        6
    KingFong  
    PRO
       Aug 30, 2023
    Connection 去掉吧
    wljn
        7
    wljn  
    OP
       Aug 30, 2023
    @yanjieee 去掉后 nginx -s reload 直接报错
    KingFong
        8
    KingFong  
    PRO
       Aug 30, 2023
    去掉 proxy_set_header Connection "Upgrade";这行
    lovelylain
        9
    lovelylain  
       Aug 30, 2023 via Android
    改成这样 proxy_set_header Connection $http_connection;
    wljn
        10
    wljn  
    OP
       Aug 30, 2023
    @yanjieee 登陆后 也是空白
    wljn
        11
    wljn  
    OP
       Aug 30, 2023
    @lovelylain 密码验证后 页面空白
    KingFong
        12
    KingFong  
    PRO
       Aug 30, 2023
    看一下你的后端是不是也会加 Connection 头,我记得 Safari 遇见双 Connection 头会白屏。
    lovelylain
        13
    lovelylain  
       Aug 31, 2023 via Android
    @wljn 你没有按我说的改啊,at 我干嘛
    wljn
        14
    wljn  
    OP
       Aug 31, 2023 via Android
    @lovelylain 大佬 我试过你那个 但是还是不行啊
    julyclyde
        15
    julyclyde  
       Aug 31, 2023
    @yanjieee 哪儿来的“双”Connection 呢?这里如果存在一个那就是后端的,nginx 并没有给浏览器下发 connection header 啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2747 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 05:25 · PVG 13:25 · LAX 22:25 · JFK 01:25
    ♥ Do have faith in what you're doing.