gpt4 book ai didi

ssl - 代理 HTTP 请求到 nginx 中的 HTTPS 服务器

转载 作者:行者123 更新时间:2023-12-04 11:47:30 24 4
gpt4 key购买 nike

我想设置一个 nginx 实例,它将以/api 开始的 HTTP 请求代理到 HTTPS 服务器,但/api URL 段应省略。
例如,实例应该监听 localhost:9817。如果它接收到 http://localhost:9817/api/auth 的请求,它应该将其代理为https://api.com:8443/auth .

这是我的 nginx 配置:

events {
worker_connections 1024;
}

http {
server {
listen 9817;
server_name localhost;

location /api {
rewrite ^/api(/.*) $1 break;
proxy_pass https://api.com:8443;
proxy_set_header Host $host;
proxy_http_version 1.1;
}

location / {
root "D:/Project/dist";
try_files $uri $uri/ /index.html;
}
}
}

但是,我在 error.log 中收到以下错误:
2020/01/16 17:54:22 [error] 420512#426216: *31 peer closed connection in SSL handshake (10054: An existing connection was forcibly closed by the remote host) while SSL handshaking to upstream, client: 127.0.0.1, server: localhost, request: "POST /api/auth HTTP/1.1", upstream: "https://16.53.35.38:8443/auth", host: "localhost:9817", referrer: "http://localhost:9817/"

这个错误的原因是什么?如何修复它或根据需要设置代理?

最佳答案

我遇到了同样的问题。
我在这个 stackoverflow answer 中找到了修复它的魔法 Action
“尝试将 proxy_ssl_server_name on; 添加到您的 proxy_pass block 中,看看是否有帮助”
它在我的 nginx.conf 中

   location / {
proxy_pass https://$http_x_forwarded_to;
}
修改后变成了
   location / {
proxy_pass https://$http_x_forwarded_to;
proxy_ssl_server_name on;
}
我可以再次享受生活

关于ssl - 代理 HTTP 请求到 nginx 中的 HTTPS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59773567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com