使用Cloudflare反向代理上游Websocket

我打算问主要的SO板,但是认为这个地方会更合适。

我想在我的主网站上使用cloudflare,然后使用nginx来反向代理一个目录到我的websocket游戏服务器。

NGINX服务器块

  location /Fonzy/ { proxy_pass http://websocket; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } 

上游区块

 upstream websocket { least_conn; server GAMESERVERIPHERE:9300; } 

我的问题是,由于cloudflare网站将是一个不同于我的游戏服务器的服务器,上游仍然工作? 还是上游块服务器必须是本地地址?

我很好奇的原因是因为我想从cloudflare中获得“保护”,但是仍然希望隐藏我的游戏服务器(或者我应该说是反向代理)。

是的,Nginx根据location代理多个后端。

在你的情况下,使用upstream模块是没有用的,当你有相同的应用程序的多个后端有用。 在你的情况下,一个基本的proxy_pass调用应该这样做:

 proxy_pass http://GAMESERVERIPHERE:9300