nginx 反代 cf workers 502 求助

2023-03-14 16:46:30 +08:00
 FaiChou

使用 cf workers 写了一个服务, 但是域名(workers.dev)被墙, 想用一台没有被墙的服务器来将请求转发到 workers 上, 这样直接请求 ip 就可以了. 以下是我 nginx 的配置:

server
    {
        listen 80;
        location / {
            proxy_pass https://xxxxx.xx.workers.dev/;
            proxy_set_header Host xxxxx.xx.workers.dev;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

重启 nginx 后, 请求 ip 返回 502.

自己 0 运维经验, 搜了下大概是因为 https 的问题? 但尝试配置证书也都无效. 或者是因为 cf 5 秒盾的问题?

所以 nginx 可以实现转发么? 或者有其他方案?

2414 次点击
所在节点    程序员
19 条回复
huyoa
2023-03-14 16:57:55 +08:00
dingyi9257
2023-03-14 16:59:11 +08:00
Custom Domains
defunct9
2023-03-14 17:00:11 +08:00
开 ssh ,让我上去看看
brader
2023-03-14 17:04:06 +08:00
1 楼说的也是不对的,其介绍的 https 情况,是针对 客户端->代理服务器的 https 配置,而你的应用中,没有一定要 https 来访问自己的代理端
FaiChou
2023-03-14 17:10:20 +08:00
@huyoa 我的配置也是 chatgpt 给我生成的 , 所以遇到 502 问题来这求教一下
gam2046
2023-03-14 17:15:29 +08:00
#2 是正解,自定义域名可解,而且速度还不错的。
brader
2023-03-14 17:22:20 +08:00
@gam2046 这个结论过于武断。chatgpt 的地址被墙了,我就亲身配置了:
```
server {
listen 88;

location / {
proxy_pass https://api.openai.com$request_uri;
}
}
```

客户端使用的 ip+端口在调用,目前服务一直正常
brader
2023-03-14 17:25:16 +08:00
楼主,我建议你换个端口尝试先,不要用 80 、443 ,因为 nginx 默认监听 80 端口(当然,我不确定你是否删除了默认配置),没有域名的区分,很可能给你解析到其他地方去了,所以换一个端口号来区分。
当然,这只是一个尝试建议,没看到日志前,不确定是这个原因
FaiChou
2023-03-14 17:27:51 +08:00
@brader 所以我怀疑是不是 cf 5 秒盾的原因
gam2046
2023-03-14 17:29:58 +08:00
@brader workers 往外访问墙什么。只是客户端到 workers 之间连接被阻断了,通过自定义域名绑定 workers 就可以解决了呀。sni 阻断,不是整个 cf ip 被阻断了。

非要自己反代当然是可以的,只是没必要。dashboard 鼠标点两下的事情,全程不用三分钟。
brader
2023-03-14 17:30:20 +08:00
@FaiChou 我并不知道你说的 cf 5 秒盾 是什么意思,你可以先尝试我上面说的换端口,如果还不行,建议打开 nginx 详细日志查看
brader
2023-03-14 17:32:53 +08:00
@gam2046 抱歉,那是我误会你的意思了,我以为你说的是反向代理也要监听域名才行。我只懂技术方面的问题,cf workers 是什么我并不清楚,它如何工作我也不清楚
yasi
2023-03-14 17:46:49 +08:00
@brader 按照你给的配置,用 ip+port 访问提示是 502 Bad Gateway... 不知是啥问题
f0rger
2023-03-14 18:47:29 +08:00
名字好熟悉,是不是 aptv 作者?建议在 cf 上买个便宜域名可以比较快解决,也可以正常访问。cf 可以开日志定位,请求的时候看一下日志
XEdge
2023-03-14 19:00:01 +08:00
加上如下配置,$host 是被反向代理的域名

proxy_ssl_name $host;
proxy_ssl_server_name on;
FaiChou
2023-03-14 19:48:52 +08:00
@f0rger 哈哈 我是另一款 tvOS 应用的作者. 搞了个域名解析到 cf 已经可以了.
scemsjyd
2023-03-14 20:05:48 +08:00
xxx.xxx.works.dev 的域名解析的问题,可以配置 nginx 的 resolver 指令指定 dns 解析试试。nginx 好像是不支持反代域名,必须要手动指定 dns 的解析。当然直接使用 cf 的 cdn 是最佳办法,没必要再走一层代理。
ik
2023-03-15 09:32:38 +08:00
加 #15 的配置就行,应该要没有 5 秒盾的前提。
ik
2023-03-15 09:33:32 +08:00
还有 nginx 要单独配 dns ,你的配置里面看起来也没有

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

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

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

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

© 2021 V2EX