nginx
☘ 主页 > 服务器 > nginx >

Nginx中Location匹配规则与Tomcat安装部署和动静分离实践指南

2026-09-26 | 佚名 | 点击:次

一、Nginx 中 location 匹配

(一)location匹配URL路径

1、根目录首页匹配

img

  • 规则逻辑:location = / 表示精确匹配根路径(即用户访问 http://域名/ 时触发)。
  • 配置说明:

(1)root html; 指定网站根目录为 html 文件夹(Nginx 默认的静态文件目录);
(2)index index.html index.htm; 定义默认首页文件,优先返回 index.html,若不存在则返回 index.htm

作用:加速处理官网首页的访问,确保用户打开网站时能快速加载首页内容

2、静态文件请求处理

(1)针对静态资源目录的匹配

img

  • 规则逻辑:location ^~ /static/ 表示前缀匹配且优先于正则匹配,即所有以 /static/ 开头的请求

(如 /static/css/main.css、/static/js/app.js)都会触发该规则。

  • 配置说明:root /webroot/; 指定静态资源的根目录为 /webroot/,即实际文件路径为 /webroot/static/…

(2)针对静态文件后缀的正则匹配

img

  • 规则逻辑:location ~* 表示不区分大小写的正则匹配,这里匹配以 .gif、 . jpg、.js 等后缀结尾的静态文件请求。
  • 配置说明:root /webroot/res/; 指定这些静态文件的根目录为 /webroot/res/,便于集中管理图片、样式、脚本等资源。
  • 作用:利用 Nginx 处理静态文件的高性能优势,将静态文件请求直接由 Nginx 响应,减轻后端应用服务器的压力

3、动态页面请求转发

(1)PHP 动态请求转发

img

  • 规则逻辑:location ~ .php$ 表示正则匹配以 .php 结尾的请求(如index.php、user.php)。
  • 配置说明:fastcgi_pass php_server:9000; 将 PHP 动态请求转发至 FastCGI 服务器(如 PHP-FPM,监听 9000 端口)处理

(2)JSP 动态请求转发

img

  • 规则逻辑:location ~ .jsp$ 表示正则匹配以 .jsp 结尾的请求(如 index.jsp、home.jsp)。
  • 配置说明:proxy_pass http://tomcat_server; 将 JSP 动态请求反向代理至 Tomcat 应用服务器处理。
  • 作用:将动态请求与静态请求分离,由专门的后端应用服务器处理业务逻辑,提升整体架构的扩展性和性能。

img

(二)location 匹配规则

1、匹配类型(三类核心匹配逻辑)

(1)精准匹配

  • 语法:location = / {…}
  • 规则:对 URL 进行普通字符的精确完全匹配,只有 URL 与配置的路径完全一致时才触发。

(2)一般匹配

  • 语法:location / {…}
  • 规则:匹配所有以 / 开头的请求,遵循最长前缀匹配原则(即哪个配置的前缀与 URL 匹配的长度最长,就优先触发哪个)。

(3)正则匹配

  • **区分大小写的正则匹配:**语法 location ~ / {…}

示例:location ~ .php$ 匹配以 .php 结尾的请求(如 index.php),且对大小写敏感(若请求是 .PHP 则不匹配)。

  • **不区分大小写的正则匹配:*语法 location ~ / {…}

示例:location ~* .jpg$ 既匹配 .jpg 也匹配 .JPG 的图片请求。

img

2、匹配修饰符(细化匹配规则的符号)

最终的目的:为了尽量精确、快速、低消耗的找到用户请求的文件/功能

3、local优先级

①精确匹配=

②前缀匹配 ^~

③正则匹配 ~或 ~*(按文件中顺序)

④不带修饰符的一般前缀匹配

⑤通用匹配/

(三)rewrite:重写–>重写用户访问的URL路径

rewrite语法:

rewrite 原路径 新路径 [标志位];

● last:停止当前rewrite,用新路径重新匹配location

● break:停止所有rewrite

● redirect:302临时重定向

● permanent:301永久重定向

二、tomcat

动态任务处理的一个服务端,tomcat主要作用:提供java语言的运行环境,对前与nginx进行写作完成动-静分离,对后-可以连接数据斥,读/号数据记录。

(一)部署 tomcat

步骤1:关闭防火墙

1

2

systemctl disable firewalld --now

setenforce 0

步骤2:配置环境

(1)tar xf jdk-8u91-linux-x64.tar.gz

(2)mv jdk1.8.0_91 /usr/local

(3)vim /etc/profile

1

2

3

4

export JAVA_HOME=/usr/local/jdk1.8.0_91

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:JAVAHOME/lib:{JAVA_HOME}/lib:JAVAH?OME/lib:{JRE_HOME}/lib

export PATH=JAVAHOME/bin:{JAVA_HOME}/bin:JAVAH?OME/bin:PATH

(4)刷新:source /etc/profile

(5) 具体查看有没有安装开发环境

1

java -version

步骤3:安装 tomcat

(1) tar zxvf apache-tomcat-8.5.16.tar.gz

(2)修改服务名字

1

mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat

(3) 启动tomcat

1

2

/usr/local/tomcat/bin/shutdown.sh # 关闭

/usr/local/tomcat/bin/startup.sh # 启动

1

netstat -natp | grep java 

步骤4:测试访问状态统计页面

打开浏览器,输入:192.168.255.128:8080

(二)动静分离配置

Tomcat1 server 配置

1

cd /usr/local/tomcat/webapps

1

2

3

4

cd test/

vim index.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

<% out.println(“动态页面 1,http://www.test1.com”);%>

img

vim server.xml

xmlValidation=“false” xmlNamespaceAware=“false”

1

netstat -natp | grep 8080

Tomcat2 server 配置

1

2

cd /usr/local/tomcat/webapps/test

vim index.jsp

img

1

tp | grep 8080

Tomcat2 server 配置

1

2

cd /usr/local/tomcat/webapps/test

vim index.jsp

img

原文链接:
相关文章
最新更新