可能是配443端口的server只有两个,然后访问https://api-test.tbk.rockysaas.com时默认就跑到这里来了。访问http://api-test.tbk.rockysaas.com时返回的是 { "code": 1010, "message": "未授权" } 如果nginx中只配置一个server域的话,则nginx是不会去进行server_name的匹配的。因为只有一个server域,也就是...
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...
IP直接HTTP方式访问nginx时,对于配置多域名的nginx服务器,其对应采用的server_name配置并不确定,即便能知道是按照配置文件字母序加载的第一个配置文件,这也不够明确,并非预期行为,应该直接禁止。 IP直接HTTPS方式访问nginx会由于证书不匹配而异常终止TLS握手过程,但是客户端会得到nginx返回的默认证书,因此完全可以通过证书...
会选第一个作为默认,所以要80端口以这个域名作为server name做个重定向
server_name www.domain.com; root /path/to/www.domain.com; index index.html index.htm; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 不过,不推荐这种方式。如果这样配置,恶意用户可以用自己的域名指向我们的IP,蹭我们的流量,来养他的域名,非常讨厌。
Nginx不设置server_name是可以的。在Nginx配置中,server_name用于指定域名或IP地址,以匹配请求的主机头。如果不设置server_name,Nginx将会使用默认的server块来处理请求。 不设置server_name的情况下,Nginx会将所有请求都交给默认的server块处理。这意味着无论请求的是哪个域名或IP地址,都会使用默认的server块中的配置进...
server_name _; return 444; } 说白了就是只要是ip访问的直接重置444错误。但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。 配置如下: server { listen 80 default_server; server_name _; rewrite ^ http://www.domain.com$request_uri?; ...