原贴:https://cookbook.fivem.net/2019/10/29/optimizing-resource-downloads-using-a-caching-proxy/
从版本 ID 1679 开始的服务器构建添加了使用一组命令配置用于从文件服务器下载资源的能力:
目前没有基于哈希的缓存失效逻辑(由于文件服务器不忽略查询字符串+客户端更新,这将需要另一个服务器更新),因此请确保在修改/重新启动资源之前清除代理的缓存。
这是一个用于设置它的 NGINX 配置示例(但是,例如,您应该在另一个通过 TLS 提供 HTTP/2 的代理后面运行它,或者以其他方式正确设置它——我们期待社区提供充实的示例在论坛上)
从版本 ID 1679 开始的服务器构建添加了使用一组命令配置用于从文件服务器下载资源的能力:
代码:
# Set the file server for the specified resource regex.
# 设置指定资源文件服务器.
fileserver_add ".*" "http://10.10.0.1/files"
# 删除与资源关联的文件服务器.
fileserver_remove ".*"
# 列出所有已注册的文件服务器模式.
fileserver_list
# 旧命令,但**需要**以免获取损坏缓存条目.
adhesive_cdnKey "someSecurePassphrase"
目前没有基于哈希的缓存失效逻辑(由于文件服务器不忽略查询字符串+客户端更新,这将需要另一个服务器更新),因此请确保在修改/重新启动资源之前清除代理的缓存。
这是一个用于设置它的 NGINX 配置示例(但是,例如,您应该在另一个通过 TLS 提供 HTTP/2 的代理后面运行它,或者以其他方式正确设置它——我们期待社区提供充实的示例在论坛上)
default.template:
代码:
proxy_cache_path /srv/cache levels=1:2 keys_zone=assets:48m max_size=10g ;
log_format asset '$remote_addr - [$time_local] "$request" $status $body_bytes_sent $upstream_cache_status';
server {
listen 80;
location /files/ {
access_log /dev/stdout asset;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache_lock on;
proxy_pass $REMOTE$request_uri;
proxy_cache assets;
proxy_cache_valid 1y;
proxy_cache_key $request_uri$is_args$args;
}
}
Dockerfile
代码:
FROM nginx:alpine
COPY default.template /etc/nginx/conf.d/default.template
CMD sh -c "envsubst \"`env | awk -F = '{printf \" \\\\$%s\", $1}'`\" < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
开始命令
代码:
docker build -t fxproxy .
docker run -d --name=fxproxy -e REMOTE=http://10.10.0.2:30120 -p 80:80 -v $PWD/cache:/srv/cache fxproxy
最后编辑: