我们正在尝试通过 Nginx 代理 OCSP 响应程序查找。客户端在其证书中硬编码了 OCSP 查找,例如 http://example.com/OCSP/EMSRootCAResponder,我们使用内部 DNS 将其定向到 Nginx 主机。 Nginx 主机收到相同的 DNS 响应,因此我们必须告诉 proxy_pass 使用外部解析器,因此
proxy_pass
不会指向自身,而是指向外部托管的 OCSP 响应器。
我们正在使用
resolver
尝试强制 Nginx 使用外部 DNS 解析器来解析外部 OCSP 服务。
server {
listen 80;
server_name ocsp.example.com;
location = / {
resolver 8.8.8.8 valid=30s;
set $domain ocsp.example.com;
proxy_pass http://$domain;
}
}
但 Nginx 仍在尝试提供本地资源,而不是将请求代理到外部上游目标。
ocsp-proxy | 2023/12/08 16:34:32 [error] 21#21: *1 open() "/etc/nginx/html/OCSP/EMSSSPCAResponder" failed (2: No such file or directory), client: 10.x.x.x, server: ocsp.example.com, request: "POST /OCSP/EMSSSPCAResponder HTTP/1.1", host: "ocsp.example.com"
思考为什么 Nginx 不执行
proxy_pass
而是尝试服务本地资源?
根据评论:我使用的
location = /
与请求不匹配 POST /OCSP/EMSSSPCAResponder
- 我打算使用 location /
匹配任何 URL。