实际上,nginx会匹配请求头中的host和server_name,如果没有匹配的上,nginx会指定该请求到一个默认的server域,如果比较说明,默认的server为第一个server。因此,就出现了如楼主所述的情况。 1. 2. 3. 4. 可能是配443端口的server只有两个,然后访问https://api-test.tbk.rockysaas.com时默认就跑到这里来了。访问...
nginx如果没匹配到,就会采用默认值。 也就是当你本机IP访问的时候,都没匹配到,那就会匹配默认值,也就是第一个server。 此时默认的server就是第一个。虽然你没有配置192.168.1.2的IP,但nginx会默认有一个空的server_name。所以你通过192.168.1.2也能访问的。 具体可以阅读下这篇文章:nginx是怎么处理一个请求的?
在开始学nginx的时候server_name明明没有匹配上,但竟然访问到了,还以为server_name不起作用,后来发现server_name的匹配规则是:先遍历所有配置的server_name,如果找到了,则执行对应的server,如果没有找到,则默认执行第一个server。 ——— 版权声明:本文为CSDN博主「星坠竹空」的原创文章,遵循CC 4.0 BY-SA版权协议...
为什么在没有找到匹配的server_name的情况下会访问 listen default_server 或者第一个server配置,还需要自己做一个404的返回判断如下,而不是自动的返回404`server { listen 80; server_name _; return 40...
会选第一个作为默认,所以要80端口以这个域名作为server name做个重定向
IP直接HTTP方式访问nginx时,对于配置多域名的nginx服务器,其对应采用的server_name配置并不确定,即便能知道是按照配置文件字母序加载的第一个配置文件,这也不够明确,并非预期行为,应该直接禁止。 IP直接HTTPS方式访问nginx会由于证书不匹配而异常终止TLS握手过程,但是客户端会得到nginx返回的默认证书,因此完全可以通过证书...
nginx配置文件server_name不生效 nginx配置文件user Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; 1. Nginx用户及组:用户 组。window下不指定 worker_processes 8; 1. 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 error_log logs/error.log;...
nginx将按照1,2,3,4的顺序对server name进行匹配,只有有一项匹配以后就会停止搜索,所以我们在使用这个指令的时候一定要分清楚它的匹配顺序(类似于location指令)。 server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能,这样可以尽量精简配置文件,毕竟太长的配置文件日常维护也很不方便。下面是2个具体的...
server_name dev.blog.com; root /var/www/blog/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; ...