nginx配置:server_name的作用

本文详细介绍了Nginx配置中的Server_Name字段的作用,它用于根据请求头的HOST字段匹配服务器块。通过实例展示了如何配置多个server块,并讲解了匹配顺序:完全匹配优先,其次是通配符匹配,然后是正则表达式匹配。同时,当没有匹配项时,Nginx的默认选择策略。最后,文章还提到了修改hosts文件以进行测试,并提供了匹配顺序的参考信息。
摘要由CSDN通过智能技术生成

作用

server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。

 

案例

修改nginx.conf


   
   
  1. server {
  2. listen 80;
  3. server_name www;
  4. location / {
  5. default_type text/html;
  6. content_by_lua '
  7. ngx.say("<p>first</p>")
  8. ';
  9. }
  10. }
  11. server {
  12. listen 80;
  13. server_name www.zkh.com;
  14. location / {
  15. default_type text/html;
  16. content_by_lua '
  17. ngx.say("<p>second</p>")
  18. ';
  19. }
  20. }
  21. server {
  22. listen 80;
  23. server_name www.zkh.*;
  24. location / {
  25. default_type text/html;
  26. content_by_lua '
  27. ngx.say("<p>third</p>")
  28. ';
  29. }
  30. }
  31. server {
  32. listen 80;
  33. server_name ~\w+.com;
  34. location / {
  35. default_type text/html;
  36. content_by_lua '
  37. ngx.say("<p>forth</p>")
  38. ';
  39. }
  40. }
  41. server {
  42. listen 80;
  43. server_name ~.*zkh.com;
  44. location / {
  45. default_type text/html;
  46. content_by_lua '
  47. ngx.say("<p>fifth</p>")
  48. ';
  49. }
  50. }

修改hosts文件


   
   
  1. 118.126.100.138 www.zkh.com
  2. 118.126.100.138 www.zkh.org
  3. 118.126.100.138 zkh.com
  4. 118.126.100.138 zkh.org

 

通过jmeter查看请求头,发现请求头携带了Host,由此可知nginx必定会拿它做uri匹配工作

匹配顺序

server_name与host匹配优先级如下:

1、完全匹配

2、通配符在前的,如*.test.com

3、在后的,如www.test.*

4、正则匹配,如~^\.www\.test\.com$

如果都不匹配

1、优先选择listen配置项后有default或default_server的

2、找到匹配listen端口的第一个server块

 

 

参考:1.为什么要配置nginx的servername

         2.nginx中server的匹配顺序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值