Location的匹配

nginx的正则表达式:
^:字符串的起始位置
$:字符窜的结束位置
*:匹配所有
+:匹配前面的字符一次或者多次
?:匹配前面的字符0次或者1次
.:任意单个字符
{n}:连续重复出现n次。
{n,m}:连续重复出现n-m次
[a-Z0-9A-Z]
[C]:匹配单个字符c
():分组
|:或
一 Location的分类:

1精确匹配

Location=/test{}...

2正则匹配

location ^~ :前缀匹配,以什么为开头

location ~ 区分大小写匹配 

location ~* 不区分大小写匹配

location !~ 区分大小写取反匹配

location !~* 不区分大小写取反匹配

3通用匹配

Location /test{}

4一般匹配

Location / {}

二 Location的优先级由左至右

精确匹配---正则匹配--一般匹配

location = 完整路径 > location^~ > location ~,~* > location/test>location /

三 一般工作中配置Location的规则

1.网站首页:都是精确匹配网站首页都是一 个静态页面。匹配网站的根工作目录
location = / {
 
}
 
2、处理静态文件的请求:目录匹配和后缀匹配
location ^~ /static {
 
}
 
location ~\.{jpg|png}$ {
 
}
3、一般规则: 动态请求,把动态请求转发的后端
location / {
    proxy_pass http://tomcat.server;
}
 

四 nginx的重定向


rewrite:结合nginx提供的全局变量和自定义的变量,结合正则表达式以及标志位实现usi重写以及重定向。

rewrite执行顺序:
1、执行server块里的rewrite
2、执行loaction里面定义的rewrite
3、选定location中的rewrite
rewrite中而可以执行if语句,只有if没有else

rewrite格式:
rewrie<reagex><replacemnet>[flag]
<regex>:正则表示式
<replacemnet>: 跳转的内容或者路径

flag标记说明


last ----------- 相当于Apache的[L]标记,表示完成rewrite)一般用于Server和if当中

break ---------(本条规则匹配完成即终止,不再匹配后面的任何规则)一般用于location

redirect -------返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL)

permanent ----(返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫会更新URL)

break和last类似 ----  但break不会重新发起一次处理过程,而是直接返回处理结果

redirect    --------------该标记表示当前规则匹配成功后立即进行重定向操作

permanent    ----------该标记和redirect类似,但是永久重定向

set    -------------------- 标记表示当前规则匹配成功设置一个变量,并把变量传入下一跳规则

rewrite /test/(.*) /ky32/$1 permanent;
.*:匹配所有
$1:表示捕获组 $1应用正则表达式的第一个捕获组
从www.ky32.com/test/index.html 1jpg
跳转到www.ky32.com/ky32/index.html 1.jpg
会影响搜索引擎的权重
永久重定向会加入搜索引擎的排名
临时不会加搜索引擎的权重

报错internal redirection cycle while processing这个的原因:


处理请求时发生了重写或者内部重定向循环,进入了无限循环。nginx循环最多可以执行10次,会报错500

总结: rewrite和locationt都可以跳转,似乎有点相似,但是区别在
rewrite是在同一域名之内更改获取资源的路径
location是对路径访问控制。

实现域名跳转

第一步 修改指定配置文件

cd /nginx-1.12.0

vim /usr/local/nginx/conf/nginx.conf

修改指定用户Nginx 

首先要有nginx的程序用户

cat  /etc/passwd   #查看是否有nginx用户,是否是程序用户

修改对应域名(自定义即可)

修改指定的日志文件,后面的main可加可不加

添加域名重定向 

第二步 检查语法错误 

保存并退出

nginx -t   #检查是否有语法问题

第三步 有报错进行排错 

这里找不到日志

无法识别到日志格式

接着进入配置文件

再次保存并退出

再次查看是否有错误

手动创建日志文件

并且进行赋权

第四步 添加域名映射关系 

修改域名解析

vim /etc/hosts

重启服务

systemctl restart nginx

第六步 测试结果 

用浏览器进行访问测试

旧域名跳转新域名

第一步 修改配置文件

第二步 添加域名映射关系

命令:systemctl restart nginx

第四步 创建网页执行文件

第五步 用浏览器进行测试

我们跳转成功

但是网页内没有内容

跳转可以正常跳转但不显示网页内容

第七步 重新测试访问

基于客户端IP地址访问跳转

第一步 修改配置文件

命令:nginx -t

第三步 创建网页返回执行文件

命令:systemctl restart nginx

第四步 用浏览器进行访问测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/138682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prompt 驱动架构设计:探索复杂 AIGC 应用的设计之道?

你是否曾经想过&#xff0c;当你在 Intellij IDEA 中输入一个段代码时&#xff0c;GitHub 是如何给你返回相关的结果的&#xff1f;其实&#xff0c;这背后的秘密就是围绕 Prompt 生成而构建的架构设计。 Prompt 是一个输入的文本段落或短语&#xff0c;用于引导 AI 生成模型执…

dockerfile 搭建lnmp+wordpress,docker-compose搭建lnmp+wordpress

目录 dockerfile 搭建lnmpwordpress 部署nginx&#xff08;容器IP 为 172.18.0.10&#xff09; 部署mysql&#xff08;容器IP 为 172.18.0.20&#xff09; 部署php&#xff08;容器IP 为 172.18.0.30&#xff09; docker-compose搭建lnmpwordpress dockerfile 搭建lnmpword…

Linux:mongodb数据逻辑备份与恢复(3.4.5版本)

我在数据库aaa的里创建了一个名为tarro的集合&#xff0c;其中有三条数据 备份语法 mongodump –h server_ip –d database_name –o dbdirectory 恢复语法 mongorestore -d database_name --dirdbdirectory 备份 现在我要将aaa.tarro进行备份 mongodump --host 192.168.254…

基于R语言实现中介效应检验以及sobel检验代码

数据格式 随机数据&#xff0c;不一定好 y是因变量&#xff0c;x是自变量&#xff0c;m是中介变量 基本原理 M ~ X Y ~ X Y ~ X M 直接上代码 library(mediation) library(bda)# 加载readxl包 library(readxl) # 读取Excel表格# 读取数据 我是从剪切板读取的 data read…

大语言模型在推荐系统的实践应用

本文从应用视角出发&#xff0c;尝试把大语言模型中的一些长处放在推荐系统中。 01 背景和问题 传统的推荐模型网络参数效果较小(不包括embedding参数)&#xff0c;训练和推理的时间、空间开销较小&#xff0c;也能充分利用用户-物品的协同信号。但是它的缺陷是只能利用数据…

ZIP文件怎么打开?值得收藏的3个方法!

“快帮帮我&#xff01;刚接收到了一个zip文件&#xff0c;但是我不知道应该怎么打开&#xff0c;有没有知道应该如何操作的朋友呀&#xff1f;快来帮帮我吧&#xff01;非常感谢&#xff01;” 在Win10电脑中&#xff0c;打开ZIP文件是一项常见任务&#xff0c;因为ZIP文件是一…

【Mysql】Innodb数据结构(四)

概述 MySQL 服务器上负责对表中数据的读取和写入工作的部分是存储引擎 &#xff0c;而服务器又支持不同类型的存储引擎&#xff0c;比如 InnoDB 、MyISAM 、Memory 等&#xff0c;不同的存储引擎一般是由不同的人为实现不同的特性而开发的&#xff0c;真实数据在不同存储引擎中…

分布式链路追踪如何跨线程

背景 我们希望实现全链路信息&#xff0c;但是代码中一般都会异步的线程处理。 解决思路 我们可以对以前的 Runable 和 Callable 进行增强。 可以使用 ali 已经存在的实现方式。 TransmittableThreadLocal (TTL) 解决异步执行时上下文传递的问题 核心的实现思路如下&#…

开源项目jeecg的菜单角色权限简单设计值得学习

涉及表&#xff1a; 后端controller注解代码&#xff1a; 方法上&#xff1a;

MatrixOne Logtail 设计解析

Logtail 是 CN&#xff08;Computation Node&#xff09;与 TN&#xff08;Transaction Node&#xff09;之间的一种日志同步协议&#xff0c;是 CN 和 TN 协同工作的基础。本文将介绍 logtail 协议的基本定位&#xff0c;协议内容和产生过程&#xff0c;也会提及一些遇到的挑战…

二、K8S之Pods

Pod 一、概念 K8S作为一个容器编排管理工具&#xff0c;它可以自动化容器部署、容器扩展、容器负载均衡等任务&#xff0c;并提供容器的自愈能力等功能。在Kubernetes中&#xff0c;Pod是最基本的调度单元&#xff0c;它是一组共享存储和网络资源的容器集合&#xff0c;通常是…

Linux性能优化--性能工具:网络

7.0 概述 本章介绍一些在Linux上可用的网络性能工具。我们主要关注分析单个设备/系统网络流量的工具&#xff0c;而非全网管理工具。虽然在完全隔离的情况下评估网络性能通常是无意义的(节点不会与自己通信),但是&#xff0c;调查单个系统在网络上的行为对确定本地配置和应用程…