机器 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 。
请教下大家,该如何解决?
![]() | 1 jmyz0455 2020-04-28 14:36:50 +08:00 光是说 502 范围挺广的,只能够叫你测试清楚 B 是不是真的能连接 A 。 如果有日志会好判断一些,建议你 A B 的配置都记录一下 log,看看是哪边的问题。 |
2 MonoLogueChi 2020-04-28 15:05:21 +08:00 via Android 你 A 机器上开了 ssl,从 B 机器反代访问 A 机器的时候,就要设置 host 头了 |
3 silencexxx 2020-04-28 15:37:41 +08:00 为啥非用 NGINX 做中转流量? iptables 实现端口映射不好吗? |
4 PriestTomb 2020-04-28 17:22:46 +08:00 想起前不久 V 站看到的帖子,试试 B 机器 Nginx 的 proxy_pass 里 ip:port 后面的斜杠去掉。。 |
![]() | 5 qwerthhusn 2020-04-28 17:29:37 +08:00 proxy_pass https://x.x.x.x:64297/; 不知道跟信任证书有没有关系,ip 的话肯定是不信的 |
![]() | 6 cnleon 2020-04-28 21:07:51 +08:00 用 stream 吧,你这个 https 就过不了。 |
7 uxff 2020-04-28 22:14:06 +08:00 转给 A,A 是 ssl 必须设置 host 头 proxy_set_header Host $http_host; |