请教个 nginx 端口转发的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Raul7
V2EX    NGINX

请教个 nginx 端口转发的问题

  •  1
     
  •   Raul7 2020-04-28 14:03:28 +08:00 3482 次点击
    这是一个创建于 1999 天前的主题,其中的信息可能已经有所发展或是发生改变。

    机器 A 在异地,我本地无法直接连接,机器 A 上部署了个服务,64297 端口了 nginx 代理,开启了 ssl 、auth 等。相关配置如下:

    server { ######################### ### Basic server settings ######################### listen 64297 ssl http2; index tpotweb.html; ssl_protocols TLSv1.3; server_name example.com; error_page 300 301 302 400 401 402 403 404 500 501 502 503 504 /error.html; ############################################## ### Remove version number add different header ############################################## server_tokens off; more_set_headers 'Server: apache'; ############################################## ### SSL settings and Cipher Suites ############################################## ssl_certificate /etc/nginx/cert/nginx.crt; ssl_certificate_key /etc/nginx/cert/nginx.key; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!DHE:!SHA:!SHA256'; ssl_ecdh_curve secp384r1; ssl_dhparam /etc/nginx/ssl/dhparam4096.pem; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; #################################### ### OWASP recommendations / settings #################################### ### Size Limits & Buffer Overflows ### the size may be configured based on the needs. client_body_buffer_size 128k; client_header_buffer_size 1k; client_max_body_size 256k; large_client_header_buffers 2 1k; ### Mitigate Slow HHTP DoS Attack ### Timeouts definition ## client_body_timeout 10; client_header_timeout 10; keepalive_timeout 5 5; send_timeout 10; ### X-Frame-Options is to prevent from clickJacking attack add_header X-Frame-Options SAMEORIGIN; ### disable content-type sniffing on some browsers. add_header X-Content-Type-Options nosniff; ### This header enables the Cross-site scripting (XSS) filter add_header X-XSS-Protection "1; mode=block"; ### This will enforce HTTP browsing into HTTPS and avoid ssl stripping attack add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; ################################## ### Restrict access and basic auth ################################## # satisfy all; satisfy any; allow 127.0.0.1; allow ::1; deny all; auth_basic "closed site"; auth_basic_user_file /etc/nginx/nginxpasswd; ################# ### Proxied sites ################# ### Kibana location /kibana/ { proxy_pass http://127.0.0.1:64296; rewrite /kibana/(.*)$ /$1 break; } ### ES location /es/ { proxy_pass http://127.0.0.1:64298/; rewrite /es/(.*)$ /$1 break; } ### head standalone location /myhead/ { proxy_pass http://127.0.0.1:64302/; rewrite /myhead/(.*)$ /$1 break; } ### CyberChef location /cyberchef { proxy_pass http://127.0.0.1:64299; rewrite ^/cyberchef(.*)$ /$1 break; } ### spiderfoot location /spiderfoot { proxy_pass http://127.0.0.1:64303; } location /static { proxy_pass http://127.0.0.1:64303/spiderfoot/static; } location /scanviz { proxy_pass http://127.0.0.1:64303/spiderfoot/scanviz; } location /scandelete { proxy_pass http://127.0.0.1:64303/spiderfoot/scandelete; } } 

    我这边有台可以连接的 B 机器,可以通这个 A 机器。 我想访问 A 机器的 64297 端口,故想通过 B 机器做中转,将 A 机器的 64297 端口代理到 B 机器上,B 机器 nginx 配置如下:

     server { listen 64297; location / { # x.x.x.x 为 A 机器 ip proxy_pass https://x.x.x.x:64297/; } } 

    但是访问 B 机器的 64297 端口,一直报 502 。

    请教下大家,该如何解决?

    7 条回复    2020-04-28 22:14:06 +08:00
    jmyz0455
        1
    jmyz0455  
       2020-04-28 14:36:50 +08:00
    光是说 502 范围挺广的,只能够叫你测试清楚 B 是不是真的能连接 A 。
    如果有日志会好判断一些,建议你 A B 的配置都记录一下 log,看看是哪边的问题。
    MonoLogueChi
        2
    MonoLogueChi  
       2020-04-28 15:05:21 +08:00 via Android
    你 A 机器上开了 ssl,从 B 机器反代访问 A 机器的时候,就要设置 host 头了
    silencexxx
        3
    silencexxx  
       2020-04-28 15:37:41 +08:00
    为啥非用 NGINX 做中转流量? iptables 实现端口映射不好吗?
    PriestTomb
        4
    PriestTomb  
       2020-04-28 17:22:46 +08:00
    想起前不久 V 站看到的帖子,试试 B 机器 Nginx 的 proxy_pass 里 ip:port 后面的斜杠去掉。。
    qwerthhusn
        5
    qwerthhusn  
       2020-04-28 17:29:37 +08:00
    proxy_pass https://x.x.x.x:64297/;
    不知道跟信任证书有没有关系,ip 的话肯定是不信的
    cnleon
        6
    cnleon  
       2020-04-28 21:07:51 +08:00
    用 stream 吧,你这个 https 就过不了。
    uxff
        7
    uxff  
       2020-04-28 22:14:06 +08:00
    转给 A,A 是 ssl 必须设置 host 头
    proxy_set_header Host $http_host;
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1538 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:38 PVG 00:38 LAX 09:38 JFK 12:38
    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