nginx核心配置示例

目录

1、nginx location的详细使用

(1)精确匹配

(2)区分大小写

(3)不区分大小写

(4)匹配文件名后缀

2、nginx下的用户认证

3、nginx自定义错误页面

4、自定义错误日志

5、nginx中的文件检测

6、长链接管理

7、下载服务器的设定及优化

8、nginx的状态页面

10、nginx的数据压缩功能


1、nginx location的详细使用

匹配优先级从高到低:
 ~*    =    ~    >     不带符号    >        ^~        >        =

#语法规则:
location [ = | ~ | ~* | ^~ ] uri { ... }
=       #用于标准uri前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立
即处理请求
^~      #用于标准uri前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对uri的最左边部分做匹配检查,不区分字符大小写
~       #用于标准uri前,表示包含正则表达式,并且区分大小写
~*      #用于标准uri前,表示包含正则表达式,并且不区分大写,
不带符号 #匹配起始于此uri的所有的uri
\       #用于标准uri前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号

(1)精确匹配

vim /usr/local/nginx/conf.d/vhosts.confserver{listen 80;server_name www.zx.org;root/data/web/html;index index.html;location = /test {root /data/web2;}
}

(2)区分大小写

如果访问uri中包含大写字母的ZX,则以下location匹配zx条件不成功,因为 ~ 区分大小写,当用户的请求被执行匹配时发现location中定义的是小写的zx, 本次访问的uri匹配失败,后续要么继续往下匹配其他的location(如果有),要么报错给客户端

vim /usr/local/nginx/conf.d/vhosts.confserver{listen 80;server_name www.zx.org;root/data/web/html;index index.html;location / {root /data/nginx/zx.org/html;}location ~ /ZX {root /data/nginx/zx.org/zx/html;}}

(3)不区分大小写

vim /usr/local/nginx/conf.d/vhosts.confserver{listen 80;server_name www.zx.org;root/data/web/html;index index.html;location / {root /data/nginx/zx.org/html;}location ~* /ZX {root /data/nginx/zx.org/zx/html;}}

(4)匹配文件名后缀

#mkdir -p /webdate/nginx/zx/images
#上传一个图片到/webdate/nginx/zx/images
#vim /usr/local/nginx/conf.d/vhosts.confserver{listen 80;server_name www.zx.org;location / {root /webdate/nginx/zx/html;}location ~* \.(gif|jpg|jpeg|bmp|png|tiff|tif|ico|wmf|js|css)$ {root /webdate/nginx/zx/images;index index.html}}

2、nginx下的用户认证

[root@nginx ~]# htpasswd -cm /usr/local/nginx/.htpasswd admin
[root@nginx ~]# cat /usr/local/nginx/.htpasswd
admin:$apr1$EN0NlJGM$fMDitN/3j045DlVuT3lXT1[root@nginx ~]# htpasswd -m /usr/local/nginx/.htpasswd zx
New password: 
Re-type new password: 
Adding password for user zx
[root@nginx ~]# cat /usr/local/nginx/.htpasswd
admin:$apr1$EN0NlJGM$fMDitN/3j045DlVuT3lXT1
zx:$apr1$kgGvOH0.$.cnDFi0XkRbE9t9wr/mPA1[root@nginx ~]# mkdir -p /usr/local/nginx/html/zx/
[root@nginx ~]# echo zx > /usr/local/nginx/html/zx/index.html
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf 
server {listen 80;server_name www.zx.org;root	/usr/local/nginx/html;index	index.html;location /zx {root /usr/local/nginx;auth_basic "login password!";auth_basic_user_file "/usr/local/nginx/.htpasswd";}
}
[root@nginx ~]# nginx -s reload
[root@nginx ~]# nginx -t

3、nginx自定义错误页面

[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf 
server {listen 80;server_name www.zx.org;root	/usr/local/nginx/html;index	index.html;error_page 404 /40x.html;            # 添加location /zx {root /usr/local/nginx;auth_basic "login password!";auth_basic_user_file "/usr/local/nginx/.htpasswd";}location = /40x.html {               # 添加root /usr/local/nginx/html/errorpage;}
}
[root@nginx ~]# mkdir -p /usr/local/nginx/html
[root@nginx ~]# echo error page > /usr/local/nginx/html/40x.html

4、自定义错误日志

[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
[root@nginx ~]# mkdir /var/log/zx.org
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf 
server {listen 80;server_name www.zx.org;root	/usr/local/nginx/html;index	index.html;error_page 404 /40x.html;error_log	/var/log/zx.org/error.log;    #错误日志access_log	/var/log/zx.org/access.log;   #访问日志location /zx {root /usr/local/nginx;auth_basic "login password!";auth_basic_user_file "/usr/local/nginx/.htpasswd";}location = /40x.html {root /usr/local/nginx/html/errorpage;}
}

5、nginx中的文件检测

try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内 部500错误。

[root@nginx ~]# mkdir -p /usr/local/nginx/html/
[root@nginx ~]# echo error default > /usr/local/nginx/html/default.html
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf
server {listen 80;server_name www.zx.org;root	/usr/local/nginx/html;index	index.html;error_page 404 /40x.html;error_log	/var/log/zx.org/error.log;access_log	/var/log/zx.org/access.log;# 如果不存在页面, 就转到default.html页面try_files	$uri $uri.html $uri/index.html /html/default.html;location = /40x.html {root /data/web/errorpage;}
}

6、长链接管理

[root@nginx ~]# dnf install telnet -y    # 测试工具
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf

[root@nginx ~]# telnet www.zx.org 80
Trying 15.197.204.56...
Connected to www.zx.org.
Escape character is '^]'.
GET / HTTP/1.1
HOST: www.zx.org

7、下载服务器的设定及优化

ngx_http_autoindex_module 模块处理以斜杠字符 "/" 结尾的请求,并生成目录列表,可以做为下载服务 配置使用

[root@nginx ~]# mkdir -p /usr/local/nginx/html/download
[root@nginx ~]# dd if=/dev/zero of=/data/web/download/zxfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.326466 s, 321 MB/s
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf
server {listen 80;server_name www.zx.org;root	/usr/local/nginx/html;index	index.html;error_log	/var/log/zx.org/error.log;access_log	/var/log/zx.org/access.log;try_files	$uri $uri.html $uri/index.html /html/default.html;location /download {root /usr/local/nginx;autoindex on;autoindex_localtime on;autoindex_exact_size off;limit_rate 0;}
}

8、nginx的状态页面

[root@nginx ~]# nginx -V                # 查看配置
nginx version: nginx/1.24.0
built by gcc 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) 
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-stream --with-stream_ssl_module[root@nginx ~]# cd /usr/local/nginx/conf.d/
[root@nginx conf.d]# vim status.conf    
[root@nginx conf.d]# nginx -s reload
[root@nginx conf.d]# vim /etc/hosts
[root@nginx ~]# nginx -V
nginx version: nginx/1.24.0
built by gcc 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) 
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-stream --with-stream_ssl_module
[root@nginx ~]# 
[root@nginx ~]# 
[root@nginx ~]# cd /usr/local/nginx/conf.d/[root@nginx conf.d]# vim status.conf
[root@nginx conf.d]# nginx -s reload
[root@nginx conf.d]# vim /etc/hosts    # 添加域名解析[root@nginx ~]# cat /usr/local/nginx/conf.d/status.conf
server {listen 80;server_name	status.zx.org;root	/usr/local/nginx/html;index	index.html;location	/status	{stub_status;#auth_basic	"login"#auth_basic_user_file	"usr/local/nginx/.htpasswd"allow 172.25.254.1;deny all;}
}
[root@nginx ~]# vim /etc/hosts
[root@nginx ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.100	nginx.zx.org	www.zx.org	status.zx.org

10、nginx的数据压缩功能

Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。

Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module,默认是内置模块

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.confgzip  on;gzip_comp_level 5;gzip_min_length 1k;gzip_http_version 1.1;gzip_vary on;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/gif image/png;

[root@nginx ~]# echo hello zx > /data/web/html/small.html
[root@nginx ~]# cat /usr/local/nginx/logs/access.log > /data/web/html/big.html
[root@nginx ~]# curl --head --compressed 172.25.254.100/small.html
[root@nginx ~]# curl --head --compressed 172.25.254.100/big.html

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

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

相关文章

WordPress建站之头像及字体错误修正

目录 一、谷歌字体 二、头像网址 三、后续使用中的“坑” 网站建设好以后,会发现有些卡顿,网速好的环境感觉不明写,但是差的环境就难以忍受了。这是打开网页的控制台(Console)会发现有报错信息: 这些报错信息反应了2个问题: 谷歌字体网站无法访问头像网站无法访问下面…

基于Springboot 和Vue 的高校宿舍管理系统源码

网络上很多宿舍管理系统都不完整,大多数缺少数据库文件,所在使用极其不方便,由于本人程序员,根据代码,自己花时间不全了数据库文件,并且可以完美运行!!!!&…

基于VS2022+Qt5+C++的串口助手开发

目录 一、前言 二、环境准备 三、创建QT串口项目 ​编辑 四、串口项目实现 1.ui界面设计 2.添加QT串口模块 3.功能实现 ①串口扫描 ②波特率、停止位等设置 ③接收数据 ④发送数据 五、最终效果 六、总结 一、前言 如果有人之前看过我文章的话应该知道&#xf…

Hbase架构和读写流程

目录 1.概述 2.简介 3.Hbase架构 4.数据模型 5.Hbase写流程 6.Hbase读数据 1.概述 本篇文章将简单的讲述Hbase的架构和读写流程,多为理论部分,不涉及API代码 2.简介 从官方介绍可以知道,Hbase是一种分布式、可扩展、支持海量数据存储的 NoSQ…

Element-UI动态生成的表单元素验证示例

模拟数据 tableData: [{name: "系统1",score: 0,children:[{name: "一号子系统",score: 0,}]},{name: "系统2",score: 0,children:[{name: "3号子系统",score: 0,}]},{name: "系统3",score: 0,children:[{name: "5号子…

python-docx在word文件表格中指定行下插入新一行并填充值

from docx import Document from copy import deepcopydef insert_row_after_specific_value(doc, table_index, column_header, target_value, new_row_data):# 加载文档# doc doc_path# 检查表格索引是否有效if table_index > len(doc.tables):print("文档中没有足够…

matlab 音频音量处理(音量大小按照dB调节)

1 音量(声压级)以分贝(dB)表示的计算公式为: 2 % 已知的 x 值 x = 0:-1:-127; % 在这里填入 x 的具体值% 计算 y %y = 10

江理工文档管理系统的设计与实现

TOC springboot148江理工文档管理系统的设计与实现 绪论** 1.1 研究背景 在这个推荐个性化的时代,采用新技术开发一个文档系统来分享和展示内容是一个永恒不变的需求。本次设计的文档管理系统有管理员和用户两个角色。管理员功能有论坛管理,公告管理…

Spark-环境启动

一、概览 从start-all.sh开始捋,一直捋到Master、Worker的启动并建立通信 二、宏观描述 Master端 1、start-all.sh调用start-master.sh启动Master 2、执行org.apache.spark.deploy.master.Master中main方法 3、通过工厂模式创建RpcEnv子类NettyRpcEnv a、创建…

【Vue3】路由Params传参

【Vue3】路由Params传参 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日…

【Redis】Linux CentOS Redis 的安装—(一)

Redis 一、获取源二、解压编译 一、获取源 //redis-stable是最新稳定版 wget https://download.redis.io/redis-stable.tar.gz二、解压编译 //我指定目录/app tar -xzvf redis-stable.tar.gz -C /appcd /app/redis-stablemake && make install##三 、修改配置启动 …

PyTorch 基础学习(5)- 神经网络

系列文章: PyTorch 基础学习(1) - 快速入门 PyTorch 基础学习(2)- 张量 Tensors PyTorch 基础学习(3) - 张量的数学操作 PyTorch 基础学习(4)- 张量的类型 PyTorch 基础学…

【阿卡迈防护分析】Vueling航空Akamai破盾实战

文章目录 1. 写在前面2. 风控分析3. 破盾实战 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

计算机毕业设计 美妆神域网站 美妆商城系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

springboot生成、响应图片验证码

我们平时经常会碰见图片验证码,那么在springboot中我们该怎么实现呢 我们可以使用一款开源的验证码生成工具EasyCaptcha,其支持多种类型的验证码,例如gif、中文、算术等,并且简单易用,具体内容可参考其官方文档。 效果…

【三维重建】SpotlessSplats:去除瞬态干扰物的三维高斯喷溅(3DGS)

代码:https://spotlesssplats.github.io 论文:https://arxiv.org/pdf/2406.20055 来源:DeepMind,多伦多大学,斯坦福大学,西蒙弗雷泽大学 提示:关注B站【方矩实验室】,查看视频讲解…

11.怎么做好一个动态标签页

效果 步骤 1.在Elementui找一个标签页组件 复制粘贴到代码 2.将他写活 将很多页面需要用的方法和变量写入store editableTabsValue: 2,editableTabs: [{title: 首页,name: index,},],addTab(state, tab) {if (state.editableTabs.findIndex(item > item.title tab.titl…

LVGL系列2--linux + lvglv8 + vscode 移植

LVGL系列 一、LVGL移植 LVGL系列1–AT32移植LVGL_V8具体步骤 LVGL系列2–linux lvglv8 vscode 移植 二、输入设备 LVGL系列3–纯物理(外部)按键,数字键盘控制控件 文章目录 LVGL系列一、LVGL移植二、输入设备 一、新建文件夹并克隆源码官方仓库 7.11.0官方仓库…

【AI/算法类】OPPO 2025届秋招笔试题(B卷)

目录 1. 第一题2. 第二题3. 第三题 ⏰ 时间:2024/08/10 🔄 输入输出:ACM格式 ⏳ 时长:2h 本试卷还有选择题部分,但这部分比较简单就不再展示。 1. 第一题 小O有一个正整数 x x x,他想知道,第…

抽卡机小程序,开启全新拆卡乐趣

近段时间,盲盒卡牌市场异常火爆,最近爆火的“小马宝莉”系列卡牌就深受消费者的喜爱,受到了广泛关注,同时也推动了卡牌市场的快速发展!盲盒卡牌拥有隐藏款卡牌和限量款卡牌,具有非常大的收藏价值&#xff0…