当前位置: 首页 > article >正文

近期复习三

目录

nginx.conf文件介绍

一.文件共享功能

1.清空html目录下文件并新建你要共享的文件

2.修改nginx.conf文件,开启autoindex功能

3.测试

 二.状态模块

1.修改nginx.conf文件

2.测试

(1)使用刚才定义的IP/nginx_status进行访问

(2)status参数介绍

三.location模块的配置

1.location的语法

2.location的介绍

(1)uri是待匹配的请求字符串,可以不含正则(标准uri)也可以含正则(正则uri)

(2)括号内的标识符号是确定uri匹配方式的

3.uri匹配的模式和优先级,从高到低

rewrite

一.定义

二.作用

1.调整用户浏览的url,模板更规范

2.提升搜索引擎网站给予用户的体验,可以将动态的url伪装成静态地址提供服务

3.在网站更换新域名后,可以通过旧域名访问到新域名

4.便于根据特殊变量1、客户信息进行url调整

三.区分地址重写和转发

1.地址重写和地址转发

2.地址转发时只会有一次网络访问请求,重写一般会有两次

3.地址转发发生在同一站点的不同项目之间,地址重写没有这个限制

4.地址重写的页面的路径需要完整路径,转发则不需要

5.地址转发可以将客户请求的数据属性传递到新的界面,而地址重写不可以,仅仅是将页面定向到服务器选定的地址

6.地址重写的速度比转发慢

四.rewrite的语法规则

1.格式

2.几个flag标记符号介绍

五.例子

1.访问不存在的网页时定向到某个界面

(1)使用if+rewrite

(2)使用try_files

2.为某个目录定义别名,用户访问的路径其实并不存在,而是将其转发到另外一个页面

(1)创建bbb目录存放index.html文件

(2)编辑nginx.conf文件

3.实现域名跳转

访问80端口域名跳转到195主机的域名


nginx.conf文件介绍

一.文件共享功能

适用情况,在没有美首页文件,即你没有任何html文件时使用

27dd8733f9614d3b93127a4f5e998b28.png

1.清空html目录下文件并新建你要共享的文件

[root@localhost html]# ll
total 0
[root@localhost html]# touch {a..d}.rpm
[root@localhost html]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 10 14:57 a.rpm
-rw-r--r-- 1 root root 0 Aug 10 14:57 b.rpm
-rw-r--r-- 1 root root 0 Aug 10 14:57 c.rpm
-rw-r--r-- 1 root root 0 Aug 10 14:57 d.rpm
[root@localhost html]# pwd
/usr/local/src/nginx-1.22.0/html

2.修改nginx.conf文件,开启autoindex功能

在要实现此功能的server区块内的location区块开启autoindex,html工作目录要和实际目录一致

[root@localhost conf]# pwd
/usr/local/src/nginx-1.22.0/conf
[root@localhost conf]# vim nginx.conf 
server {
                listen 192.168.2.190;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / {
                        root /usr/local/src/nginx-1.22.0/html/;
                        autoindex on;   #添加这行
                        index index.html index.htm;
                }
} 

3.测试

0de9ea8e873f4e6b96b1671a7baf7fb2.png

 二.状态模块

可以查看nginx服务的状态

1.修改nginx.conf文件

[root@localhost conf]# vim nginx.conf 
server {
                listen 192.168.2.190;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / {
                        root /usr/local/src/nginx-1.22.0/html/;
                        autoindex on; 
                        index index.html index.htm;
                }
                location /nginx_status{   ¥新添加一个location区块,新增以下内容
                        stub_status on;
                        access_log off;
                }
        }               
[root@localhost conf]# systemctl restart nginx

2.测试

(1)使用刚才定义的IP/nginx_status进行访问

93ed68516fc7476c9c02ea87308dd151.png

(2)status参数介绍

 Active connections 表示当前的活动客户端连接数量

accepts表示接受客户端连接的总数

handled表示处理的连接总数

requests表示客户端请求的总数

Reading表示nginx正在读请求头的当前连接数

Writing 表示nginx正在将响应写回客户端的当前连接数

Waiting表示当前空闲客户端连接数等待一个请求

三.location模块的配置

1.location的语法

location [=|~|~*|^~|=/] uri {
    ......
}

2.location的介绍

根据用户请求的uri来来执行不同的location

(1)uri是待匹配的请求字符串,可以不含正则(标准uri)也可以含正则(正则uri)

(2)括号内的标识符号是确定uri匹配方式的

  • 没有这些选项时,server先试用标准uri进行匹配,记录匹配度最高者。再用正则uri进行匹配,当第一个正则uri匹配成功时停止,并使用这个location区块,这锅这里面的正则uri都匹配失败了,就是用上面的记录的匹配度最高的标准uri所在location
  • “=”,要求请求的字符串与uri严格匹配,一经匹配成功就停止匹配并处理当前location
  • “~”,表示uri包含有正则表达式,区分大小写
  • “~*”,表示uri包含有正则表达式,不区分大小写,含有正则表达式时就必须使用这两个中的一个
  • “^~”,表示要求nginx服务器找到uri和请求字符串最高匹配度的location后立即处理这个location,不再匹配正则uri
  • “!~”,,取反

3.uri匹配的模式和优先级,从高到低

location = / {}

精确匹配/,根据给定的path做精准匹配

location ^~ /image/{

字符串常规匹配,不做正则检查

location ~* \.(gif\|jpg\|jpeg)$

{

正则匹配

location /documents/ {

字符串常规匹配,做正则检查,有正则就会先匹配正则

location / {

其他所有的location都未被匹配到后默认匹配这个location

rewrite

一.定义

web服务器中的必备功能,用来实现地址的重写(不是转发),可以让用户在我们网站变动的时候仍然能够通过原来的书签访问到变动后的内容。

二.作用

1.调整用户浏览的url,模板更规范

2.提升搜索引擎网站给予用户的体验,可以将动态的url伪装成静态地址提供服务

3.在网站更换新域名后,可以通过旧域名访问到新域名

4.便于根据特殊变量1、客户信息进行url调整

三.区分地址重写和转发

1.地址重写和地址转发

地址重写是地址标准化的过程,即使服务器接受了来自用户输入的不同的域名,但服务器再此之中选择确定的一个,那么客户端浏览器中的地址会改变为服务器选定的地址;而地址转发是数据传输分别到达不同的路由器服务器设备,是一个域名指向一个站点的过程,在地址转发的过程中,浏览器中的地址是不变的。

2.地址转发时只会有一次网络访问请求,重写一般会有两次

3.地址转发发生在同一站点的不同项目之间,地址重写没有这个限制

4.地址重写的页面的路径需要完整路径,转发则不需要

5.地址转发可以将客户请求的数据属性传递到新的界面,而地址重写不可以,仅仅是将页面定向到服务器选定的地址

6.地址重写的速度比转发慢

四.rewrite的语法规则

1.格式

可以应用在server、location、if等

rewrite regex replacement [flag];
#表示根据regex正则表达式匹配成功后跳转到replacement

2.几个flag标记符号介绍

last——本条规则匹配完成后, 继续向下匹配新其他uri规则

break——本条规则匹配完成即终止, 不再匹配后面的任何规则

redirect——返回 302 临时重定向, 浏览器地址栏会显示跳转后的url地址

permanent——返回 301 永久重定向, 浏览器地址栏会显示跳转后的url地址

五.例子

1.访问不存在的网页时定向到某个界面

(1)使用if+rewrite

server {
                listen 80;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;  #这个目录里不要存在index.html文件
                        index index.html index.htm;
                        if (!-f $request_filename) {
                                rewrite /. /err.html permanent; #这个err.html要放在上面那个html/ip目录里
                        }
                }

(2)使用try_files

server {
                listen 80;
                server_name www.aabb.com;

                root /usr/local/src/nginx-1.22.0/html/ip;
                index index.html index.htm;
         
                location / {
                        try_files $uri $uri/ =404;
                }

                location = /err.html {
                        root /usr/local/src/nginx-1.22.0/html/ip;
                }
                error_page 404 /err.html;
        }

68d5f1fb3bd64fc2b1913cf9809f5996.png

2.为某个目录定义别名,用户访问的路径其实并不存在,而是将其转发到另外一个页面

(1)创建bbb目录存放index.html文件

[root@localhost ip]# pwd
/usr/local/src/nginx-1.22.0/html/ip
[root@localhost ip]# ll
total 4
drwxr-xr-x 2 root root 24 Aug 11 12:54 bbb
-rwxrwxrwx 1 root root  6 Aug 11 11:39 err.html
[root@localhost ip]# cat bbb/index.html 
bbb

(2)编辑nginx.conf文件

server {
                listen 80;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                        rewrite ^/aaa/(.*) /bbb/$1 last;  #aaa目录实际上不存在,在访问aaa时跳转访问bbb目录的内容
                }

        }    

41018656f2914d0284f30ed1e9754dc0.png

3.实现域名跳转

访问80端口域名跳转到195主机的域名

server {
                listen 80;
                server_name www.aabb.com;
                rewrite ^/.* http://www.llss.com/$1 last;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                }

        }    
        server { 
                listen 192.168.2.195;
                server_name www.llss.com;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index1.html index.htm;
                }
        }

c4f9e36de883432a84460e71a1fdde42.png


http://www.kler.cn/a/160791.html

相关文章:

  • NVIDIA NIM 简介
  • 人工智能的前沿研究方向与未来发展趋势
  • 动态规划与贪心算法:核心区别与实例分析
  • 高性能分布式缓存Redis-高可用部署
  • 从0开始机器学习--Day23--支持向量机
  • VCSVerdi:KDB文件的生成和导入
  • 【7】PyQt布局layout
  • 低多边形建筑3D模型纹理贴图
  • 安装和初始化 VyOS 虚拟机
  • VUE2+THREE.JS 模型上方显示信息框/标签(CSS3DSprite精灵模型)
  • c++遍历算法的transform算法
  • Python-上下文管理器
  • Matlab 在一个文件中调用另一个文件中的函数
  • CMakeLists中下载github仓库代码和设置代理
  • 【华为OD题库-082】TLV解析II-Java
  • 备考六级day1
  • mybatis的分页插件
  • SCI论文——respectively用法
  • Vue3整合Element Plus过程
  • 创业6个月裤衩都赔掉了;2023生成式AI年度大事表;AI工程师的自我修养;LLM开发者成长计划;OpenAI LLM入门课程 | ShowMeAI日报
  • Stable Diffusion Automatic1111 Web UI和dreambooth扩展的安装教程
  • 艾泊宇产品战略:低价的战争:阿里、京东、拼多多的终局推演
  • ssm党务政务服务热线平台源码和论文答辩PPT
  • L0、Linux常用命令
  • Linux学习笔记2
  • 什么是 AOP,AOP 的作用是什么?