你可以使用 Nginx 的 server
块和 if
指令结合正则表达式来检查请求的 Host 字段。如果 Host 字段不以 10.19.29.110
开头并且不以 127.0.0.1
开头,就返回 403 Forbidden。以下是一个配置示例:
server {
listen 80;
# 检查 Host 是否符合要求
if ($host !~ ^(10\.19\.29\.110|127\.0\.0\.1)) {
return 403; # 如果不匹配,返回403 Forbidden
}
location / {
# 正常处理请求的逻辑
try_files $uri $uri/ =404;
}
}
配置说明
listen 80;
表示在端口 80 上监听 HTTP 请求。if ($host !~ ^(10\.19\.29\.110|127\.0\.0\.1)) { ... }
使用正则表达式检查请求中的 Host 是否以指定 IP 地址开头。^
表示行的开始,后面跟随要匹配的模式。(10\.19\.29\.110|127\.0\.0\.1)
是一个选择,表示匹配这两个 IP 地址之一。
- 如果条件为真,即请求的 Host 不满足要求,则使用
return 403;
返回403 Forbidden状态码。 - 在
location /
块中,你可以添加其他正常的请求处理逻辑。
完整性检查
确保在修改配置文件后进行语法检查,并重新加载 Nginx:
# 检查 Nginx 配置文件语法是否正确
sudo nginx -t
# 重载 Nginx,以使更改生效
sudo nginx -s reload
如果有任何其他问题或需要进一步的帮助,请随时询问!
内容由零声教学AI助手提供,问题来源于学员提问