nginx的简单转发请求之server和location配置详解

 更新时间:2022年05月11日 15:31:04   作者:刘振宁的博客  
这篇文章主要介绍了nginx的简单转发请求之server和location配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

简单梳理一下nginx中关于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("<p>first</p>")
  ';
 }
}

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

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

 }
}

首先,请求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/ 
} 

总结

比如,现在同时启动 前台系统,和后台系统,就可以用两个server(可以配置host为api,admin,或者直接修改端口也可以),每个server中3个location来确定具体页面的请求.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • nginx中配置sse的方法示例

    nginx中配置sse的方法示例

    本文主要介绍了nginx中配置sse的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 详解Nginx如何根据swagger关键字屏蔽页面

    详解Nginx如何根据swagger关键字屏蔽页面

    这篇文章主要为大家详细介绍了Nginx 如何根据swagger关键字屏蔽页面的实现方案,文中有详细的解决方案,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-08-08
  • nginx编译安装及常用参数详解

    nginx编译安装及常用参数详解

    这篇文章主要介绍了nginx编译安装及常用参数详解,一种是基于ansible role实现编译安装nginx以及编译安装参数详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • 浅谈Nginx请求限制和访问控制的实现

    浅谈Nginx请求限制和访问控制的实现

    这篇文章主要介绍了浅谈Nginx请求限制和访问控制的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 在Nginx服务器上配置Google反向代理的基本方法

    在Nginx服务器上配置Google反向代理的基本方法

    这篇文章主要介绍了在Nginx服务器上配置Google反向代理的基本方法,文中使用到了SSL来加密反向代理,需要的朋友可以参考下
    2015-12-12
  • nginx服务器实现上传下载文件的实例代码

    nginx服务器实现上传下载文件的实例代码

    这篇文章主要介绍了nginx服务器实现上传下载文件的实例代码,本文通过代码给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • Nginx 代理与负载均衡详解

    Nginx 代理与负载均衡详解

    这篇文章主要介绍了Nginx 代理与负载均衡详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Nginx网站服务过程详解

    Nginx网站服务过程详解

    Nginx是一款高性能、异步非阻塞工作模式、轻量级Web服务软件,这篇文章主要介绍了Nginx网站服务的相关知识,需要的朋友可以参考下
    2023-06-06
  • 详解Nginx中的重定向功能

    详解Nginx中的重定向功能

    这篇文章主要介绍了详解Nginx中的重定向功能,Nginx是一款基于事务的无阻塞的高性能服务器,需要的朋友可以参考下
    2015-07-07
  • nginx+uwsgi启动Django项目的详细步骤

    nginx+uwsgi启动Django项目的详细步骤

    nginx+uwsgi+django是我们常用的django部署方式。这篇文章主要介绍了nginx+uwsgi启动Django项目的详细步骤,非常具有实用价值,需要的朋友可以参考下
    2018-10-10

最新评论