http 模块设置
# 设置缓存地址和其他相关设置
proxy_cache_path 缓存地址 levels=1:2 inactive=24d keys_zone=mycache:100m max_size=15g;
# 临时文件存放地址
proxy_temp_path 文件存放地址;
proxy_cache_path 参数 | 作用 |
---|---|
levels | 缓存文件的目录层数 |
inactive | 缓存过期时间 |
keys_zone | 缓存名和缓存标识仓库大小 |
max_size | 缓存大小 |
server 模块设置
server {
# 被代理端为 http 协议就是 http:// 开头
# 被代理端为 https 协议就是 https:// 开头
set $proxy_host_ip "http:// 被代理 ip";
listen 80; # 监听端口
server_name 代理的域名; # 绑定域名
# 匹配所有请求,将它们转发到后端服务器
location / {
proxy_pass $proxy_host_ip; # 后端服务器地址与端口
proxy_set_header Host $host; # 保留原始 Host 头
proxy_set_header X-Real-IP $remote_addr; # 传递真实客户端 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; # 传递请求协议(http/https)proxy_connect_timeout 600; # 链接超时时间
proxy_read_timeout 600; # 链接读超时时间
# 其他可选配置 如缓存 超时 重试等
}
# 正则表达式匹配 指定文件后缀名
location ~* \.(zip|iso|deb|exe|tar.gz|rar|tar.xz|msi|run|test)$ {
proxy_pass $proxy_host_ip; # 后端服务器地址与端口
proxy_set_header Host $host; # 保留原始 Host 头
proxy_set_header X-Real-IP $remote_addr; # 传递真实客户端 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; # 传递请求协议(http/https)proxy_connect_timeout 600; # 链接超时时间
proxy_read_timeout 600; # 链接读超时时间
# 使用 http 里面定义的缓存
proxy_cache mycache;
# 缓存链接标识
proxy_cache_key $host$request_uri;
# 忽略后端服务器缓存策略
proxy_ignore_headers Cache-Control;
# 添加自定义 headres
add_header Proxy-Cache-Status $upstream_cache_status;
# 缓存指定状态码的请求结果
proxy_cache_valid 200 302 24d;
}
}
设置 SSL
在 server 中添加
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
ssl_certificate pem 文件地址; # 证书文件路径
ssl_certificate_key key 文件地址; # 私钥文件路径
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
修改 server 中 listen 为
listen 443 ssl;
添加新的 server
server {
listen 80;
server_name 代理的域名;
# 重定向 HTTP 到 HTTPS
return 301 https://$server_name$request_uri;
}
正文完