V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ethusdt
0.01D
V2EX  ›  程序员

nginx 反代 cf workers 502 求助

  •  
  •   ethusdt ·
    FaiChou · Mar 14, 2023 · 3532 views
    This topic created in 1140 days ago, the information mentioned may be changed or developed.

    使用 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 可以实现转发么? 或者有其他方案?

    Supplement 1  ·  Mar 14, 2023
    把域名放到 cf 解析, 然后添加一个 subdomain 给 cf worker. 完美解决.
    谢谢 2L 的建议.
    19 replies    2023-03-15 09:33:32 +08:00
    huyoa
        1
    huyoa  
       Mar 14, 2023
    dingyi9257
        2
    dingyi9257  
       Mar 14, 2023 via Android   ❤️ 1
    Custom Domains
    defunct9
        3
    defunct9  
       Mar 14, 2023
    开 ssh ,让我上去看看
    brader
        4
    brader  
       Mar 14, 2023
    1 楼说的也是不对的,其介绍的 https 情况,是针对 客户端->代理服务器的 https 配置,而你的应用中,没有一定要 https 来访问自己的代理端
    ethusdt
        5
    ethusdt  
    OP
       Mar 14, 2023
    @huyoa 我的配置也是 chatgpt 给我生成的 , 所以遇到 502 问题来这求教一下
    ntdll
        6
    ntdll  
       Mar 14, 2023
    #2 是正解,自定义域名可解,而且速度还不错的。
    brader
        7
    brader  
       Mar 14, 2023
    @gam2046 这个结论过于武断。chatgpt 的地址被墙了,我就亲身配置了:
    ```
    server {
    listen 88;

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

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

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

    proxy_ssl_name $host;
    proxy_ssl_server_name on;
    ethusdt
        16
    ethusdt  
    OP
       Mar 14, 2023
    @f0rger 哈哈 我是另一款 tvOS 应用的作者. 搞了个域名解析到 cf 已经可以了.
    scemsjyd
        17
    scemsjyd  
       Mar 14, 2023
    xxx.xxx.works.dev 的域名解析的问题,可以配置 nginx 的 resolver 指令指定 dns 解析试试。nginx 好像是不支持反代域名,必须要手动指定 dns 的解析。当然直接使用 cf 的 cdn 是最佳办法,没必要再走一层代理。
    ik
        18
    ik  
       Mar 15, 2023 via iPhone
    加 #15 的配置就行,应该要没有 5 秒盾的前提。
    ik
        19
    ik  
       Mar 15, 2023 via iPhone
    还有 nginx 要单独配 dns ,你的配置里面看起来也没有
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2781 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 15:40 · PVG 23:40 · LAX 08:40 · JFK 11:40
    ♥ Do have faith in what you're doing.