前言
使用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=5
BalancerMember http://xxx.xxx.xxx.xxx:xx retry=5
## 负载均衡算法,可选 byrequests(按请求数)、bytraffic(按流量)、bybusyness(按繁忙度)等
ProxySet lbmethod=byrequests
</Proxy>
# 应用到根路径
<Proxy "/">
Require all granted
ProxyPass balancer://mycluster/
ProxyPassReverse balancer://mycluster/
</Proxy>
重启
重启一下Apache
服务即可.
总结
之后再去异步访问就会发现没有之前的问题了。
ChatGPT版本 通过 Apache 反向代理,不仅让 Unity 服务获得了更加稳定的请求入口,还能无缝接入 SSL、负载均衡、访问控制等中间层功能。如果你的项目需要应对更大规模的并发访问或想统一管理多种微服务,反向代理将是一个必不可少的利器。