千家信息网

ngnix中转发请求之server和location配置的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关ngnix中转发请求之server和location配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比如URL:www.mask_de
千家信息网最后更新 2026年10月31日ngnix中转发请求之server和location配置的示例分析

这篇文章给大家分享的是有关ngnix中转发请求之server和location配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

比如URL:www.mask_dev2.com:9999/login/

server管的前半部分,即:www.mask_dev2.com:9999

location管的是后半部分,即:/login/

一个nginx可以配置多个server。

每个server可以配置多个location。

URL的前半部分控制选择哪一个server,后半部分控制选择哪一个location,最终决定往哪里去请求.

server的配置

server { listen 9999; server_name www.mask_dev2.cn; location / {  default_type text/html;  content_by_lua '   ngx.say("

first

") '; }}server { listen 9999; server_name www.mask_dev2.*; location / { default_type text/html; content_by_lua ' ngx.say("

second

") '; }}server { listen 9998; server_name _; location / { default_type text/html; content_by_lua ' ngx.say("

third

") '; }}

首先,请求nginx的地址,肯定是请求的nginx所在的服务器,也就是说ip是固定的。

也就是说,无所谓server_name是什么,都是指的当前服务器.

那么当前服务器是怎样对应多个域名呢,这个只需要在相应的dns服务器中进行添加,就行了,比如暂时把本机当成dns服务器,修改hosts

127.0.0.1 localhost
127.0.0.1 www.mask_dev2.cn
127.0.0.1 www.mask_dev2.com

server匹配顺序

server_name与host匹配优先级如下:

1、完全匹配
2、通配符在前的,如*.test.com
3、在后的,如www.test.*
4、正则匹配,如~^\.www\.test\.com$

如果都不匹配

1、优先选择listen配置项后有default或default_server的
2、找到匹配listen端口的第一个server块

location配置

找到server之后,再去找具体的location

server { listen 9998; server_name _; location = / {   #规则A  }  location = /login {   #规则B  }  location ^~ /static/ {   #规则C  }  location ~ \.(gif|jpg|png|js|css)$ {   #规则D  }  location ~* \.png$ {   #规则E  }  location !~ \.xhtml$ {   #规则F  }  location !~* \.xhtml$ {   #规则G  }  location / {   #规则H  }

语法规则:

location [=||*|^~] uri { … }

  1. = 开头表示精确匹配

  2. ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ static /aa匹配到(注意是空格)。

  3. ~ 开头表示区分大小写的正则匹配

  4. ~* 开头表示不区分大小写的正则匹配

  5. !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则

  6. / 通用匹配,任何请求都会匹配到。

  7. 多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

但是一般没有这么复杂,有3点。

  1. 默认请求。

  2. 页面请求.

  3. 后台逻辑请求.

#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。 #这里是直接转发给后端应用服务器了,也可以是一个静态首页 # 第一个必选规则 location = / {   proxy_pass http://tomcat:8080/index } # 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项 # 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用 location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {   root /webroot/res/; } #第三个规则就是通用规则,用来转发动态请求到后端应用服务器 #非静态文件请求就默认是动态请求,自己根据实际把握 #毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了 location / {   proxy_pass http://127.0.0.1:8080/ }

感谢各位的阅读!关于"ngnix中转发请求之server和location配置的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

规则 配置 服务器 服务 开头 正则 多个 大小 文件 静态 顺序 处理 选择 示例 分析 也就是 也就是说 内容 前半部 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技集团 上海挚品互联网科技 嘟嘟瓜互联网科技 远信互联网科技 腾讯科技 互联网女皇 新浪科技互联网 阿里巴巴算科技企业还是互联网 移动互联网科技公司 阿大互联网科技有限公司 民营互联网公司国防科技 东莞新华互联网科技学校 工业互联网展湾科技股份有限公司 互联网科技圈年度人物 互联网时代的科技公司 山东子淼互联网科技有限公司 怎样加入科技互联网 广东工业互联网大赛深圳学泰科技 济南小医互联网科技有限公司招聘 陕西九四连强互联网科技有限公司 山东亿川互联网科技有限责任公司 手磨咖啡 互联网和科技创新 北京互联网科技公司 奇酷互联网科技公司 互联网金融科技平台 上海致骋互联网科技 知域互联网科技有限公司大骗子 广州新华互联网科技学校电竞方面 四川互联网展示科技馆设计 宁波允成互联网科技有限公司
0