大佬们求助 nginx 配置

321 天前
 yeccc

公司业务每次更新测试代码都需要登陆到跳板机,在跳板机更新代码打包然后在远程内网的服务器手动将包放上去发布,跳板机器是可以访问代码仓库云效的, 所以在跳板机搞了一个 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;
        }
    }
}

1422 次点击
所在节点    NGINX
7 条回复
ryd994
321 天前
你不需要 listen 443

proxy_connect 相关内容放到上面 880 的配置一起

代理 https 时,客户端会明文连接到代理服务器,要求 connect 某网站。代理服务器会通过明文通道直接转发 TLS 加密后的密文。TLS 的安全性是从后端到客户端,端到端加密。代理服务器不解密。
akira
321 天前
有点奇怪的用法。。
yeccc
321 天前
@akira 为了不手动打包不得已
yeccc
321 天前
@ryd994 哦哦,谢谢大佬我去试试
yeccc
321 天前
@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;
}
}
julyclyde
320 天前
405 是 method not allowed
你的代理服务器环境变量咋设置的?是不是匹配到另一个 server{}去了?
看看 nginx 的 error_log 里咋写的
yeccc
319 天前
@julyclyde 改了源码,重新编译了一下可以了谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/950857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX