nginx - nginx:在没有 Host: 标头的情况下如何获取服务器?
问题描述
对于在主机标头 ( ) 中使用 IP 地址的人,我有一个特殊的 server {} 块,server_name ~^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+;
并且工作正常。当根本没有提供主机标头时,我想要一个不同的服务器块。我一直在测试:
telnet localhost 80
GET /foobar HTTP/1.0
我从我的日志记录("$http_host"
在 log_format 中)看到这显示为"-"
(连字符而不是下划线)。但是这个服务器块:
server {
listen 80;
listen [::]:80;
# hyphen not underscore
server_name ~^-*$;
root /var/www/no-host;
default_type text/plain;
index foo.ey
location / {
try_files $uri /foo.ey;
}
}
永远不会被使用,请求改为默认server_name _;
(下划线不是连字符)。
我的用例类似于域停放站点,我希望处理大量主机名,并且应该在数据库中查找所有合法的主机名,但我想尽早筛选某些非法主机名。
解决方案
推荐阅读
- excel - 为什么我的 VBA 代码存在文件路径错误
- python - 如何使用 selenium 遍历 python 列表,搜索每个项目,抓取数据,然后搜索下一个项目
- java - 仅以有效的方式读取少量 xml 元素
- java - 如果输入与其变量不匹配,如何添加错误
- .net - 使用任务计划程序或 Windows 服务为长时间运行的进程计划的控制台应用程序
- c - 尝试在 Arch Linux 上用 C 语言编写 Lua 模块会出现段错误
- c# - Visual Studio Server Explorer 显示表数据为空
- c# - 如何在 C# 程序中打开 Telnet 会话并以编程方式发送命令和接收响应?
- python - 食谱数据库的类不起作用?
- awk - 计算每行不同字符串的出现次数并将计数附加为列