目录请求代理
比如将网站www.abc.com上的图片/uploads目录的请求,代理到图片服务器image.abc.com域名
# 代理 /uploads/ 到 其他域名
location /uploads/ {
proxy_pass https://image.abc.com; # 末尾不加斜杠,保留原 URI
# proxy_pass https://image.abc.com/uploads/; # 末尾加斜杠,保留后缀 URI
# 重要:修改 Host 头为目标域名(image.abc.com),否则后端可能无法正确识别
proxy_set_header Host image.abc.com;
# 保留真实客户端 IP 等信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 可选:缓存控制(按需)
proxy_cache_valid 200 302 1d;
add_header X-Cache-Status $upstream_cache_status;
# 如果 image.abc.com 使用自签名证书或需要强制验证,可适当调整 SSL 选项
# 下面通常无需修改,但若后端证书有问题可临时启用(不推荐生产环境)
# proxy_ssl_verify off;
# proxy_ssl_verify_depth 2;
# 超时设置
proxy_connect_timeout 30s;
proxy_read_timeout 30s;
# 传递 Cookie 等(如果不需要可以不加)
proxy_pass_request_headers on;
}
举例:https://www.abc.com/uploads/images/20260101/20260101001.jpg的图片链接请求,将会代理到https://image.abc.com/uploads/images/20260101/20260101001.jpg
目录重定向
将指定目录的所有请求,重定向网站首页
location /wp-admin/ {
return 301 /;
}
举例:/wp-admin/admin.php /wp-admin/themes.php
指定前缀重定向
将含有某个地址前缀的请求,重定向网站首页
location /index.php {
return 301 /;
}
举例:/index.php /index.php?s=index /index.php/index