Apache 反向代理Unity服務器
- 前言
- 項目
- 使用PHPStudy開啟服務
- 修改配置文件
- 修改配置
- 負載均衡(可選)
- 重啟
- 總結
前言
使用Unity開了個后臺服務器,但是另一個Java服務器進行大量異步請求時會導致服務器回復過慢,所以開一個Apache緩沖一下。
ChatGPT版本 在日常開發中,Unity 自帶的輕量級 HTTP 服務雖然方便,但在面對高并發或大量異步請求時,往往會出現響應變慢甚至阻塞的問題。為了緩解這一瓶頸,我們可以在本地部署一個 Apache 反向代理,將請求先交給 Apache 處理和緩存,再轉發給 Unity 服務,從而提升吞吐量并獲得更多靈活的中間層能力。
項目
使用PHPStudy開啟服務
PHPStudy下載鏈接: https://old.xp.cn/download.html
只開Apache
就可以
修改配置文件
打開Apache
的配置文件
修改配置
打開下面兩行的注釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
然后再文件最后添加
ProxyRequests Off
ProxyPreserveHost On<IfModule mod_proxy.c><Location "/"># 此處可以修改為你程序暴漏的端口ProxyPass "http://localhost:8866/"ProxyPassReverse "http://localhost:8866/"</Location>
</IfModule>
修改完成之后的最終版本
記得改為自己程序暴漏的端口
# 打開下面兩行的注釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so# 在文件最后添加
ProxyRequests Off
ProxyPreserveHost On<IfModule mod_proxy.c><Location "/"># 此處可以修改為你程序暴漏的端口ProxyPass "http://localhost:8866/"ProxyPassReverse "http://localhost:8866/"</Location>
</IfModule>
負載均衡(可選)
# 1. slotmem_shm 必須最先加載
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so# (可選)如果有 plain 版本,也一并加載
# LoadModule slotmem_plain_module modules/mod_slotmem_plain.so# 2. proxy 核心
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so# 3. balancer 和算法
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
# 負載均衡器定義
<Proxy balancer://mycluster>BalancerMember http://127.0.0.1:xx retry=5BalancerMember http://xxx.xxx.xxx.xxx:xx retry=5## 負載均衡算法,可選 byrequests(按請求數)、bytraffic(按流量)、bybusyness(按繁忙度)等ProxySet lbmethod=byrequests
</Proxy># 應用到根路徑
<Proxy "/">Require all grantedProxyPass balancer://mycluster/ProxyPassReverse balancer://mycluster/
</Proxy>
重啟
重啟一下Apache
服務即可.
總結
之后再去異步訪問就會發現沒有之前的問題了。
ChatGPT版本 通過 Apache 反向代理,不僅讓 Unity 服務獲得了更加穩定的請求入口,還能無縫接入 SSL、負載均衡、訪問控制等中間層功能。如果你的項目需要應對更大規模的并發訪問或想統一管理多種微服務,反向代理將是一個必不可少的利器。