这是我的配置。
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
ssl_certificate /etc/ssl/certs/nginx-self.crt;
ssl_certificate_key /etc/ssl/private/nginx-self.key;
ssl_client_certificate /etc/nginx/client_cert/ttca.pem;
ssl_verify_client on;
ssl_verify_depth 1;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
if ( $ssl_client_s_dn ~ "MyOU" ) {
proxy_pass https://192.168.210.108;
}
return 404;
}
}
答案1
你可能需要一个break;
在你的if
街区里。
就目前情况而言,隐式位置从外部块if
继承,并且由于胜过,您仍然只会得到 404。return 404;
return
proxy_pass
if
在位置块中是非常特殊的,我强烈建议你避免使用它,除非你非常仔细地阅读各种文档和示例,包括Gerald链接的那个,我猜你只读了它的标题。