04. Nginx入门-Nginx WEB模块

测试环境

此处使用的yum安装的Nginx路径。
此处域名均在本地配置hosts。

主配置文件

路径:/etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

子配置文件

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}
}

测试数据

#用于测试连接状态
mkdir -p /www/wangmingqu/
echo "王茗渠测试页面" > /www/wangmingqu/index.html#用于测试随机页面
mkdir -p /www/wangmingqu/random
echo "wang 王茗渠" > /www/wangmingqu/random/wang.html
echo "ming 王茗渠" > /www/wangmingqu/random/ming.html
echo "qu 王茗渠" > /www/wangmingqu/random/qu.html
echo "wangmingqu 王茗渠" > /www/wangmingqu/random/.wangmingqu.html

检查Nginx

nginx -t
systemctl reload nginx

验证Nginx

image.png

连接状态模块

模块简介

使用连接状态模块可以通过网页的形式实时的显示用户的连接信息。

主要作用

展示用户和Nginx链接数量信息。
模块名称:http_stub_status_module

配置范围

server标签下的location标签中。
对哪个网站有链接状态查看需求的,就在此网站的server下新建location标签配置“stub_status”。

模块应用

查看模块是否安装

nginx -V 2>&1 | grep stub_status

启动连接状态模块

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}location /nginx_status {					#定义访问“/nginx_status”才能查看到连接状态stub_status;										#启动连接状态模块allow all;											#允许哪些IP地址可以访问此页面}
}

检查Nginx

nginx -t
systemctl reload nginx

验证Nginx

  • 页面解释
    | 关键字 | 解释 |
    | — | — |
    | Active connections | 活跃的连接数,即多少人连接 |
    | server | 总连接数 |
    | accepts | 成功连接数 |
    | handled requests | 请求的次数 |
    | Reading | 读取客户端header的信息数,即请求头 |
    | Writing | 返回给客户端的header的信息数,即响应头 |
    | Waiting | 等待的请求数,原因是开启了keepalive |

  • 访问页面

image.png

随机主页模块

模块简介

使用随机主页模块,可以实现用户访问页面时给予其指定的随机页面。

主要作用

将主页设置成随机页面,是一种微调更新机制。
模块名称:http_random_index_module

配置范围

server标签下的location标签中。
对哪个网站有随机页面需求的,就在此网站的server下新建location标签配置“random_index”。

模块应用

查看模块是否安装

nginx -V 2>&1 | grep random_index

启动随机页面模块

路径:/etc/nginx/conf.d/random.conf

server {listen 80;server_name wang.mingqu.com;charset utf-8;location / {root /www/wangmingqu/random/;random_index on;}
}

检查Nginx

nginx -t
systemctl reload nginx

验证Nginx

注意:隐藏文件不会被随机选取。
image.png
image.png
image.png

替换模块

模块简介

主要作用

为网站快速提供替换网页内容服务,临时解决错误页面问题。
模块名称:http_sub_module

配置范围

server标签下的location标签中。
对哪个网站有替换页面需求的,就在此网站的server标签下配置。

模块应用

查看模块是否安装

nginx -V 2>&1 | grep sub_module

启动替换模块

路径:/etc/nginx/conf.d/default.conf

server {listen       80;server_name  localhost;sub_fileter nginx "my_nginx_test";				#将nginx替换成my_nginx_testsub_filter_once on;												#仅替换一次关键字#sub_filter_once off;											#默认仅替换一次关键字,关闭后全局替换location / {root   /usr/share/nginx/html;index  index.html index.htm;}
}

检查Nginx

nginx -t
systemctl reload nginx

验证Nginx

image.png

文件压缩模块

模块简介

Nginx文件压缩模块是http_gzip_static_module、with-http_gunzip_module、ngx_http_gzip_module三个模块对请求中的压缩文件进行分析和处理的。

主要作用

使文件传输前,进行压缩,提升传输效率。
模块名称:http_gzip_static_module、http_gunzip_module

配置范围

文件压缩模块可以配置在http、server、location标签中。
http标签中配置,表示全局设置;
server标签中配置,表示网站设置;
location标签中配置,表示某个匹配设置;

模块应用

查看模块是否安装

nginx -V 2>&1 | grep zip

注意:查找中可能缺少ngx_http_gzip_module,但是不影响使用。

测试文件准备

准备一个大于2M的文件效果最好。

启动文件压缩模块

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;gzip on;									#启动gzip模块,默认关闭即gzip offgzip_comp_level 5;				#指定gzip模块的压缩级别,级别有1-9,级别越高压缩比例越大gzip_http_version 1.1;		#指定gzip使用的版本,目前有1.0和1.1两个版本,使用最新的就可以gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;  #指定可以压缩的类型gzip_static on;						#静态文件压缩启动location / {root /www/wangmingqu/;index index.html index.htm;}location /nginx_status {stub_status;allow all;}
}

检查Nginx

nginx -t
systemctl reload nginx

验证Nginx

压缩以后用户接受的文件会有一定比例的压缩。

页面缓存模块

模块简介

主要作用

优化用户访问、加速用户访问页面的服务。
页面缓存可以减少服务器压力。
缺点影响网站的实时性。
模块名称:ngx_http_headers_module

配置范围

文件压缩模块可以配置在http、server、location标签中。
http标签中配置,表示全局设置;
server标签中配置,表示网站设置;
location标签中配置,表示某个匹配设置;

模块应用

查看模块是否安装

模块默认安装

启动页面缓存模块

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 80;server_name wang.wangmingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;expires 24h;									#设置页面缓存24小时,默认情况下是关闭的#expires off;									#默认关闭;#expires -1;									#表示永远过期;#expires max;									#指定值为10年;}location /nginx_status {stub_status;allow all;}
}

检查Nginx

nginx -t
systemctl reload nginx

防盗链模块

模块简介

主要作用

防止其他网站盗用本站链接。
模块名称:ngx_http_referer_module

配置范围

可以配置在server、location标签。

模块应用

启动防盗链模块

server {listen 80;server_name wang.mingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;valid_referes none blocked wang.mingqu.com server_name ming.wangmingqu.com;				#禁止引用链接,锁定wang.mingqu.com,允许ming.wangmingqu.com可以引用链接if ($invalid_referer){														#当有人访问时return 403;																			#返回403}}
}
  • 生成环境下配置
server {listen 80;server_name wang.mingqu.com;charset utf-8;location / {root /www/wangmingqu/;index index.html index.htm;}location ~*\.(gif|jpg|png|bmp)${root /www/wangmingqu/;valid_referes none blockd *.qfcloud.top server_names ~tianyun~\.google\.~\.baidu\;if ($invalid_referer){return 403;}}
}

检查Nginx

nginx -t
systemctl reload nginx

模块安装

如果安装好的Nginx中缺少相关模块,可以采用平滑升级的方式解决。

平滑升级原理

  • 在不停掉老进程的情况下,启动新进程。
  • 老进程负责处理仍然没有处理完的请求,但不接受处理新请求。
  • 新进程接受新请求。
  • 老进程处理完所有请求,关闭所有链接后停止。

平滑升级的信号

主进程支持的信号

  • TERM(或INT):立即退出;
  • QUIT:等待请求处理结束后再退出;
  • KILL:强制终止进程;
  • HUP:重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程;
  • USR1:重新打开日志文件;
  • USR2:启动新的主进程,实现热升级;
  • WINCH:逐步关闭工作进程;

工作进程支持的信号

  • TERM(或INT):立即退出;
  • QUIT:等待请求处理结束后再退出;
  • USR1:重新打开日志文件;

平滑升级

平滑升级–Nginx添加模块

在已经安装Nginx的基础上添加随机主页模块。

  1. 检查随机主页模块是否安装
/usr/local/nginx/sbin/nginx -V 2>&1 | grep random_index
  1. 备份原Nginx二进制文件及配置
tar -cvf /usr/local/nginx_old_1.24.0.tgz /usr/local/nginx
  1. 添加随机主页模块
#进入Nginx解压目录
cd /usr/local/nginx-1.24.0/#添加模块(添加是需要复制原有模块)
./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_realip_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-stream \
--with-stream_ssl_module \
--with-http_sub_module \
--with-http_random_index_module
  1. 进程make操作

注意:参照编译安装Nginx的方法安装,但是只需要执行make,千万不要make install

make
  1. 复制新的Nginx二进制文件,进入新的Nginx安装包
cp /usr/local/nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/
  1. 检查新的Nginx是否正常
/usr/local/nginx/sbin/nginx -t
  1. 给Nginx发送平滑升级信号

注意:此处的nginx.pid文件路径

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

查看nginx.pid,发现有一个新的nginx.pid.oldbin

ll /usr/local/nginx/logs/-rw-r--r-- 1 root root 5 Sep 25 13:32 nginx.pid
-rw-r--r-- 1 root root 5 Sep 25 13:27 nginx.pid.oldbin
  1. 关闭旧Nginx进程
kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  1. 结束工作进程,完成此次平滑升级
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  1. 查看模块是否添加成功
/usr/local/nginx/sbin/nginx -V 2>&1 | grep random_index

平滑升级–Nginx版本升级

将nginx 1.24.0升级到1.25.3

  1. 备份原Nginx二进制文件及配置
tar -cvf /usr/local/nginx_old_1.24.0.tgz /usr/local/nginx
  1. 查看原Nginx安装的模块
/usr/local/nginx/sbin/nginx -V
  1. 下载Nginx 1.25.3的安装包
wget https://nginx.org/download/nginx-1.25.3.tar.gz
  1. 解压并编译Nginx 1.25.3

注意:编译新版本时一定要使用原有的WEB模块,否则将影响Nginx应用。

tar -zxvf nginx-1.25.3.tar.gz -C /usr/local/
cd /usr/local/nginx-1.25.3/./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_realip_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-stream \
--with-stream_ssl_module \
--with-http_sub_module \
--with-http_random_index_module
  1. 进行make操作

注意:参照编译安装Nginx的方法安装,但是只需要执行make,千万不要make install

make
  1. 拷贝Nginx 1.25.3版本的二进制文件到1.24.0版本的进程目录
cp /usr/local/nginx-1.25.3/objs/nginx /usr/local/nginx/sbin/
  1. 启动新的主进程,实现热升级
kill -USER2 `cat /usr/local/nginx/logs/nginx.pid`
  1. 查看Nginx升级后的版本及WEB模块
/usr/local/nginx/sbin/nginx -V

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

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

相关文章

如何使用宝塔面板部署MySQL数据库,并结合内网穿透实现固定公网地址远程连接

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.1 开放局域网端口3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几…

Mybatis-Plus——04,自动填充时间(新注解)

自动填充(新注解) 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…

视频号爆爽短剧推广,一键搬运,傻瓜式操作,日入2000+

首先,我想问下有没有人尝试过短剧推广,是否感觉最近短剧推广变得困难,或者收益甚微。这可能是因为许多人都在抖音、快手等大型平台上进行短剧推广,竞争非常激烈,就像在争夺一块有限的蛋糕,自然难以获得满意…

一键生成超好用的简历设计模板

对于缺乏工作经验和职业规划的应届生而言,使用简历设计平台,辅助我们完成简历分区、排版和美化流程,早就成为简历设计环节的 “潜规则”。这里我们挑选了 5 个能够实现免费下载、一键生成的简历设计平台,供大家参考借鉴。 即时设…

洛谷P1888 三角函数

输入一组勾股数 a,b,c(abc),用分数格式输出其较小锐角的正弦值。(要求约分。) 输入格式 一行,包含三个正整数,即勾股数a,b,c(无大小顺序)。 输出格式 一行&#xff0…

H5双人五子棋小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html> <html> <…

Android开发者必看,我的移动开发春季历程

热修复介绍 1.开发流程 当项目出现紧急bug时&#xff0c;传统的开发流程是发布新版本&#xff0c;引导用户覆盖安装。抛开平台审核上线的时间不说&#xff0c;一天重复下载安装至少两次的用户体验是很差的。而热修复的出现完美解决了这个问题&#xff0c;用户在收到服务器推送…

安装完NGINX 已经正常启动,用IP访问显示的是Welcome to CentOS?

下头Nginx 以前配置服务器难道配置完nginx默认访问80端口进入不应该是欢迎来到nginx吗&#xff0c;nono变了 nginx变了 现在默认访问就是Welcome to CentOS 你的配置没有问题 只要你能访问 就行 直接改成你的项目地址就ok了

设计模式——2_3 迭代器(Iterator)

生活就像一颗巧克力&#xff0c;你永远不知道下一颗是什么味道 ——《阿甘正传》 文章目录 定义图纸一个例子&#xff1a;假如你的供应商提供了不同类型的返回值单独的遍历流程实现 碎碎念如果读写同时进行会发生啥&#xff1f;外部迭代和内部迭代迭代器和其他模式迭代器和组合…

vue 之 Quill编辑器封装

安装 npm install vue-quill-editor --save <template><div><el-upload:action"uploadUrl":before-upload"handleBeforeUpload":on-success"handleUploadSuccess":on-error"handleUploadError"name"file":sh…

字节同事问我:我的Postman为什么连不了数据库?

postman本身没有数据库连接功能&#xff0c;所以用到了node.js中的xmysql实现Rest API的生成&#xff0c;利用postman进行请求&#xff0c;获取需要的数据&#xff0c;来做数据准备或断言。 1 安装 安装node.js&#xff1a;要求版本大于等于7.6 首先保证你的环境上有node.js…

JavaScript观察者模式:实现对象间的事件通信!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Minio容器化部署并整合SpringBoot

1、启动minio容器 docker run -p 9000:9000 -p 9090:9090 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEYminio -v /usr/local/minio/data:/data -v /usr/local/minio/config:/root/.minio minio/minio server /data --console-addr…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…

三国野史秘闻翻译视频剪辑 条条爆品 一条视频增粉1w (附888G素材内容)

我将为大家分享一个全新的主题——三国野史秘闻。这个主题本身就充满了趣味性&#xff0c;再加上我们独特的解读&#xff0c;由于粉丝们对此类内容非常热衷&#xff0c;因此很容易在评论区引发热烈讨论&#xff0c;这使得我们的短视频有很大的机会在抖音上走红。 项目 地 址 &…

详解C#之WinForm版利用RichTextBox 制作文本编辑器【附源码】

在Windows应用程序开发中&#xff0c;刚刚介绍了WPF版的利用RichTextBox实现文本编辑器&#xff0c;今天继续推出WinForm版的利用RichTextBox实现文本编辑器。本文利用一个简单的小例子&#xff0c;简述如何在WinForm开发中&#xff0c;利用RichTextBox开发文本编辑器&#xff…

数电票又增新票种 百望云率先推出机动车数电票解决方案

经过两年多的试点推广&#xff0c;数电票工程已经覆盖全国大部分省区市&#xff08;含计划单列市&#xff09;&#xff0c;随着系统建设的深入&#xff0c;不仅是应用功能逐渐完善&#xff0c;对票种的支持也走向全面。 2023年11月天津市正式开启机动车数电票的开具功能&#x…

SpringBoot自定义注解+反射实现 excel 导入的数据组装及字段校验

在前段时间的开发工作中&#xff0c;接手了一个很简单&#xff0c;很普通的开发任务。 要求实现一个单表的基础数据的批量导入功能。 评估下来&#xff0c;用户每次批量导入的数据量也就几千条&#xff0c;也不大。 是不是很简单&#xff0c;没有骗你们吧。但是呢&#xff0…

TB-03F-Kit 基础AT指令的使用

文章目录 前言一、使用前准备1. 确保TB-03F-Kit已经连接到电脑&#xff0c;并且已经烧录好固件。2. 准备号调试助手&#xff0c;并且电脑上已经安装好了串口驱动3. 打开串口调试助手并复位模组 二、指令介绍三、基础指令1. 准备测试2. AT 测试指令3. ATHELP 查看指令4. ATRST 模…

阻塞队列介绍

阻塞队列 kafka是目前来说性能最好的消息队列服务器&#xff0c;能处理TB级别的数据 作用:点赞、评论时&#xff0c;服务器会自动给某个用户发送通知 kafka是个框架&#xff0c;如果不用框架还要解决类似问题&#xff0c;就要用到阻塞队列 BlockingQueue 阻塞队列就是一个…