公司业务每次更新测试代码都需要登陆到跳板机,在跳板机更新代码打包然后在远程内网的服务器手动将包放上去发布,跳板机器是可以访问代码仓库云效的, 所以在跳板机搞了一个 nginx 来做正向代理处理内网服务器的请求来实现代码更新包更新之类的操作,但是不知道是不是配置的问题一直请求一直 405 ,还有更新 mavne 依赖的时候也会 timeou t 前端 node 依赖也是安装不了的
,http 是可以正常拉取代码的但是 https 就不行,求大佬帮忙看看 下面是 nginx 配置(添加了 ngx_http_proxy_connect 模块)
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { resolver 114.114.114.114; listen 880 default_server; location / { proxy_pass http://$host$request_uri; proxy_set_header HOST $host; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; } } server { listen 443; # dns resolver used by forward proxying resolver 8.8.8.8; # forward proxy for CONNECT request proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; # forward proxy for non-CONNECT request location / { proxy_set_header Host $host; proxy_pass $scheme://$host$request_uri; } } server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
![]() | 1 ryd994 2023-06-22 15:32:07 +08:00 via Android 你不需要 listen 443 proxy_connect 相关内容放到上面 880 的配置一起 代理 https 时,客户端会明文连接到代理服务器,要求 connect 某网站。代理服务器会通过明文通道直接转发 TLS 加密后的密文。TLS 的安全性是从后端到客户端,端到端加密。代理服务器不解密。 |
![]() | 2 akira 2023-06-22 19:28:20 +08:00 有点奇怪的用法。。 |
![]() | 4 |
![]() | 5 yeccc OP @ryd994 大佬我按照你说的将 proxy_connect 与 880 的配置在一起,还是一样的问题 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { resolver 8.8.8.8; #指定 DNS 服务器 IP 地址 listen 880 default_server; proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; location / { proxy_pass $scheme://$host$request_uri; #设定代理服务器的协议和地址 proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; error_page 405 =200 http://$host$request_uri; } } |
6 julyclyde 2023-06-24 12:47:06 +08:00 405 是 method not allowed 你的代理服务器环境变量咋设置的?是不是匹配到另一个 server{}去了? 看看 nginx 的 error_log 里咋写的 |