nginx server_name _;

简介:

【解释server_name _】的意思


经常在nginx中看到一段以下的server_name 匹配。在虚拟主机当中。


server_name _;


这里指定的不是什么特别的名字,它只是一个无效的域名。从来不会匹配任何真实名字相匹配。


如:

server {

    listen       8080;

    server_name  _;

    access_log  /data1/logs/nginx/monitor_access.log base;


    root  /data1/www/other/monitor;

    location / { return 403; }


    location ~ "^/(monitor|apc|clear_apc)\.php$" {

        fastcgi_pass   php-fpm;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }


}



其中当访问:

curl -I  http://localhost:8080/monitor.php


日志格式:


log日志为:

0.001 0.001 127.0.0.1 - unix:/dev/shm/php-fpm1.sock [30/Aug/2016:21:12:52 +0800] localhost "HEAD /monitor.php HTTP/1.1" 200 143 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" "-" - "127.0.0.1"


其中localhost为nginx的 $host字段。


当其访问:

curl -I http://192.168.100.10:8080/monitor.php


log中$host为192.168.100.10


注意:

变量中$host

功能:该变量的值等于请求头中的Host值,如果Host无效时,那么就处理该请求的Server的名称。

注意:$host和$http_host变量有些情况是有区别的。$host不包括端口号。



疑问:

curl -I  http://localhost:8080/monitor.php



server {

    listen 8080;

    server_name localhost;

    root ...

    location / {

        .....

    }

}


server {

    listen 8080;

    server_name _;

    root ...

    location / {

        .....

    }

}



上面两个虚拟主机,会被匹配到哪个呢?

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1844511如需转载请自行联系原作者

cuizhiliang
相关文章
|
11月前
|
域名解析 网络协议 应用服务中间件
nginx server_name配置文件覆盖不生效
nginx server_name配置文件覆盖不生效
|
网络协议 应用服务中间件 nginx
Nginx配置server_name讲解
Nginx配置server_name讲解
1647 0
|
应用服务中间件 Linux PHP
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
124 0
|
应用服务中间件 PHP nginx
Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名
http://www.cnblogs.com/buffer/archive/2011/08/17/2143514.html Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。
14331 0
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
577 87
|
4月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
|
2月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
459 10
|
3月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
232 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
3月前
|
JSON 前端开发 应用服务中间件
配置Nginx根据IP地址进行流量限制以及返回JSON格式数据的方案
最后,记得在任何生产环境部署之前,进行透彻测试以确保一切运转如预期。遵循这些战术,守卫你的网络城堡不再是难题。
175 3
|
10月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
670 7