nginx 反向代理 minio 的 9090 端口的控制台,报 502 错误 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX    NGINX

nginx 反向代理 minio 的 9090 端口的控制台,报 502 错误

  •  
  •   zxCoder 2022-03-08 10:00:46 +08:00 4413 次点击
    这是一个创建于 1389 天前的主题,其中的信息可能已经有所发展或是发生改变。

    配置文件是

    server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private.key; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location /minio/ { proxy_pass http://127.0.0.1:9090/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } } 

    日志是

    2022/03/08 01:49:20 [error] 24#24: *2 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /minio/ HTTP/1.1", upstream: "https://127.0.0.1:9090/", host: "xxx.xxx.xxx.xxx" 

    访问 https://xxx.xxx.xxx.xxx/minio 显示 502 错误

    第 1 条附言    2022-03-08 10:54:52 +08:00

    我好像把配置文件搞乱了

    现在这样配置也访问不了 https://ip ,之前是可以的

    server { listen 443 ssl; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private.key; location / { root /usr/share/nginx/html/; index index.html; } } 
    24 条回复    2022-03-08 14:33:00 +08:00
    dier
        1
    dier  
       2022-03-08 10:15:34 +08:00
    怎么看日志 upsteram 显示的是 https://127.0.0.1:9090 。配错了还是你粘错了。nginx 先不用 HTTPS 试试能不能正常访问
    zxCoder
        2
    zxCoder  
    OP
       2022-03-08 10:19:40 +08:00
    @dier 哦哦 那个日志是我上一次改的复制的,现在已经改成代理到 http://127.0.0.1:9090/ ,但是还是不行

    然后我用 ssh 代理直接在本地访问 http://127.0.0.1:9090 是可以的
    jowan
        3
    jowan  
       2022-03-08 10:26:10 +08:00
    dier
        4
    dier  
       span class="ago" title="2022-03-08 10:37:08 +08:00">2022-03-08 10:37:08 +08:00
    @zxCoder 你先把 location 部分的 /minio/ 改成 / 试试吧,反代这个位置很容易出现问题
    zxCoder
        5
    zxCoder  
    OP
       2022-03-08 10:41:26 +08:00
    @dier

    server {

    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/certificate.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;

    location / {
    proxy_pass https://127.0.0.1:9090;
    }
    }


    这样子直接访问 https://ip 就 502 了,但是 http://ip 又出现了 nginx 那个 index.html 。。但是我已经把其他的配置都关了
    Vegetable
        6
    Vegetable  
       2022-03-08 10:41:59 +08:00
    最好别 http://host/minio/这么代理,而使用 minio.host.com 这种模式。
    这是官方不支持的方式,好像也有人做到了,反正当初我发现比较麻烦,就放弃了。
    Vegetable
        7
    Vegetable  
       2022-03-08 10:42:03 +08:00
    anonydmer
        8
    anonydmer  
       2022-03-08 10:42:14 +08:00
    按照 3 楼贴的官方文档来
    zxCoder
        9
    zxCoder  
    OP
       2022-03-08 10:44:53 +08:00
    @Vegetable 只有 ip ,好像没法这样弄
    anonydmer
        10
    anonydmer  
       2022-03-08 10:45:37 +08:00
    再补充点吧,1. 推荐用单独的域名模式; 2. 不要自己用路径还要 rewrite ,没用,你这写了 S3 的签名计算结果能匹配么
    gadfly3173
        11
    gadfly3173  
       2022-03-08 10:47:15 +08:00
    @zxCoder #5 因为你只配了 443 没有指定 default server ,也没有指定 80 的 default ,所以用 ip 访问当然什么也看不到
    Vegetable
        12
    Vegetable  
       2022-03-08 10:47:34 +08:00
    @zxCoder 只有 ip 就换端口。反正你这么代理,可能会导致签名 url 无法使用,默认的控制面板可能也会出问题。
    gadfly3173
        13
    gadfly3173  
       2022-03-08 10:48:27 +08:00
    @zxCoder #9 话说买个域名也不贵吧 内网也可以解析的
    lscexpress
        14
    lscexpress  
       2022-03-08 10:50:17 +08:00
    如果你是本地环境那 127.0.0.1:9090 应该不会出错,如果你部署到公网,那你应该用 0.0.0.0:9090
    dier
        15
    dier  
       2022-03-08 10:52:04 +08:00
    关掉 nginx 其它的 server 块配置,然后用下面的试试
    ```config
    server {
    server_name YOUR_IP;
    listen 80;
    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;

    proxy_pass http://127.0.0.1:9090/;

    }
    }
    zxCoder
        16
    zxCoder  
    OP
       2022-03-08 10:58:51 +08:00
    @dier 现在 http://ip 和 https://ip 都 502 了
    zxCoder
        17
    zxCoder  
    OP
       2022-03-08 10:59:18 +08:00
    感觉得重装了,配置都搞乱了
    dier
        18
    dier  
       2022-03-08 11:20:53 +08:00
    nginx 的配置文件没有很复杂,还原很简单的。你的 nginx 跟 minio 是在同一台机器上吗
    zxCoder
        19
    zxCoder  
    OP
       2022-03-08 11:27:39 +08:00
    @dier 是的,都是 docker 容器,这个有关系吗

    我现在 nginx 的配置是

    my.conf:

    ```
    server {
    listen 80;
    server_name ip.ip.ip.ip;
    return 301 https://ip.ip.ip.ip$request_uri;
    }

    server {
    listen 443 ssl;
    server_name ip.ip.ip.ip;

    ssl_certificate /etc/nginx/ssl/certificate.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
    root /usr/share/nginx/html/;
    index index.html;
    # proxy_set_header Host $http_host;
    # proxy_pass http://localhost:9090;
    }
    }
    ```

    nginx.conf:

    ```
    user nginx;
    worker_processes auto;

    error_log /var/log/nginx/error.log notice;
    pid /var/run/nginx.pid;


    events {
    worker_connections 1024;
    }


    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    #tcp_nopush on;

    keepalive_timeout 65;

    #gzip on;

    include /etc/nginx/conf.d/my.conf;
    }
    ```

    minio 没有其他的配置,就刚刚按官方文档加了 https ,现在 ssh 代理能访问 https://127.0.0.1:9090
    jowan
        20
    jowan  
       2022-03-08 11:44:03 +08:00
    你 nginx 如果也是 docker 的话 ip 不能填本机 ip
    dier
        21
    dier  
       2022-03-08 11:44:57 +08:00
    nginx 也是容器的话 proxy_pass 就不能用 127.0.0.1 这个地址,要用宿主机的实际网卡 IP
    zxCoder
        22
    zxCoder  
    OP
       2022-03-08 12:58:23 +08:00
    @jowan
    @dier

    确实是这个问题。。。多谢多谢,原来 docker 这是关键的一点我没说明。。。
    ik
        23
    ik  
       2022-03-08 13:02:38 +08:00 via iPhone
    @zxCoder #5 你上面说改成 http 了,但是这里不是还是 https 么
    yuchenr
        24
    yuchenr  
       2022-03-08 14:33:00 +08:00
    现在控制台和业务不是同一个端口
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5424 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:35 PVG 10:35 LAX 18:35 JFK 21:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86