只有域名为example.com的请求会被Nginx处理,其他访问返回403
时间: 2024-10-29 09:10:25 浏览: 19
nginx配置多域名访问以及完整配置
如果你想要只允许`example.com`域名的请求访问Nginx,并将其他所有非此域名的请求返回403 Forbidden错误,你需要在Nginx的配置中设置一个精确匹配的URL路径规则。以下是这个配置示例:
首先,确保你的Ingress配置包含了一个`host`字段,就像之前例子那样指定为`example.com`。然后,在Nginx的配置文件中,你可以添加一个location块来检查请求头中的Host字段并根据需要返回403响应。这是一个基本的`server`块示例,通常放在Ingress资源的`rules`部分里,这里假设你正在使用的是`nginx`作为Ingress controller:
```yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /.*
backend:
serviceName: nginx-service
servicePort: 80
pathType: Prefix # 设置为Prefix来启用路径匹配
```
在上述配置中,`/.*`表示匹配任意路径,当请求的`Host`为`example.com`且路径不是`example.com`的一部分时,Nginx将返回403。`pathType: Prefix`确保只有完全匹配`example.com`的路径才会通过。
如果你使用的是自定义的Nginx部署,可以在Deployment的容器中编写相应的Nginx配置文件,不过这通常是Ingress控制器的任务。
阅读全文