nginx的功能以及运用(编译、平滑升级、提高服务器设置、location alias 等)

nginx与apache的对比

 nginx优点

nginx使用场景

 编译安装nginx过程

1.先清空opt文件夹 

2.关闭防火墙,关闭防护

 3 安装依赖包,可以通过本地yum去安装 首先就是挂载,随后切换到配置文件中修改

4本地配置文件配置内容

5 随后安装环境包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

6 创建一个nginx的用户

 

 7 接下来编译安装,首先切换到opt里面,将在官网下载的包拉入到xshell

./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
 

注意因为是新版的安装包,必须安装openssl-devel

8 下载

9 做一个软连接 为了让系统识别nginx 

没做软连接之前,系统识别不了nginx

 补充说明:如果正确使用sbin 或bin 

查看第三方程序在哪个里面 pwd可以查看,如果在sbin就用sbin  如果在bin,就用bin

 解析为什么软连接的的路径  make install生成安装目录 才会有nginx

有两种方法可以识别nginx

1.echo $PATH,将nginx的路径加入到此文件中

2.做软连接

查看语法是否有误 

 开启nginx进程 并且查看

master process:是nginx的主进程,用来管理worker process进程,并且可以读取配置文件

worker process:工作进程,用来处理客户的连接请求

停止nginx

1.先查看nginx的pid号 pid号在logs目录里面

pid号与主进程号是一样的                                 

 杀除进程号

 killall -3 nginx中killall是根据进程名杀除,但是会出现误杀。

重载 

 或者使用nginx的-s选项 可以通过--help查看

如果要停止nginx,可以使用nginx -s quit  随后使用lsof  -i :80 去检验

如果想使用重载,则使用nginx -s reload

平滑升级:就是在不关闭nginx的情况下,升级nginx

 举例说明,先在官网下载一个最新版本的nginx,1.25

随后,查看自己的nginx版本号,nginx -v

 将最新版本的nginx挪到xshell中

 

 然后使用./configuer  跟make 即可 不需要使用make install (怕会被覆盖)

 ./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module

随后查看一下,会生成objs的文件夹,此文件夹中,就存在25版本的文件

 接下来要做替换,先找到24版本的nginx,改个名字

 改完名字之后,再切换到25版本中的objs(因为里面有25版本的nginx的二进制文件)

 接着,去24版本的路径中去查看 

 接着,继续切换到25版本的路径中

 最后证实一下

或者通过客户端去访问服务端

 日志分割

 举例说明: 将多余的移动到别的文件夹中,相关nginx的目录就没有了,使用日志分割,会重新生成新的文件,再次让nginx文件生成

创建nginx自启动文件,或者称为 利用systemctl 去管理nginx

vim /usr/lib/systemd/system/nginx.service
#建立文件
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

[Unit]
Description=The nginx HTTP and reverse proxy server

[Service]
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx
ExecStop=/usr/bin/kill -s TERM $MAINPID
ExecReload=/apps/nginx/sbin/nginx -s reload


[Install]
WantedBy=multi-user.target
 

认识nginx里的主配置文件

 

 全局配置

在全局配置中的文件数要跟event配置中的进程处理连接数要相同!! 

补充:如果要向提高每个工作进程的连接数,上面文件数跟连接数只是在程序上面设置,系统也要设置。

临时修改 ulimit -n 数字  

缺点:服务器重启之后,就会还原变成默认值1024

永久修改: 进入、etc/security/    (进入重要的配置文件中)

验证:

重启服务器

验证一下,成功

问题展示:

如果想要服务器添加5万并发,该如何设置(服务器有2个cpu) 系统设置(设置最大能打开的文件数)+程序设置

第一步:先查看cpu数量 (有两个,所以五万除以2,所以每个进程的文件数跟连接数改为25000,五万的一半)

第二步 在nginx主配置文件中修改 主进程数、文件数、连接数、use epoll

以上步骤为在程序中设置最大的进程数,同时系统也要设置

第三步 在/etc/security/中配置最大打开的文件数

 

 要重启

第四步保存后退出,并且重启nginx服务

验证一下:

打开第二终端(相同)查看进程号

 

查看max open files 为25000成功 

 

正常的并发数量:文件数*连接数  此时nginx为网站服务器

反向代理=文件数*连接数 /2   此时nginx为代理服务器  

nginx要处理 客户端过来的连接  还有   给客户端服务器发来的连接


 

http配置

 

例如,当在网页中访问自己的主页,

 

这个里面的格式就是因为http中main决定的。

 

 web服务监听设置

访问前缀为ky33时,就是从/var/www/html中去找到abc.html文件

访问前缀为ky35时,就是从/var/www/root中去找到abc.html文件 

 root是路径

解析 :先把ky33当做文件去看,会优先访问这个目录有没有ky33这个文件,如果有直接返回,如果没有,则把ky33当做目录,去目录里面找index.html文件,如果还是没有则出现404报错

 举例说明

在nginx.conf配置文件中修改内容

 在conf配置文件中建立var文件夹,再分别在www web里面建立ky33 ky35的目录,并且写入文件内容

 最后重启一下nginx服务

进入网页中输入网址

成功

alias别名 

举例说明,在ky35中,将root改为alias,然后去访问网页,会显示错误,在nginx.logs里面看一下错误日志

 

 因此,只需要在web文件夹中在建立一个abc.html的文件即可

然后再访问网页,成功

root与alias

nginx访问状态统计设置 (nginx是一个网站,要看当前并发量、处理多少连接、多少人访问)

第一步查看模块是否下载 

nginx -V

模块设置

 

 

如果想关闭模块前面加without  想开启 加 with

 

 第二步 开启模块

进入到nginx.conf的配置文件中修改

​​​​​​​

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

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

相关文章

什么是nginx 、安装nginx

一、 什么是nginx 1.1 nginx的概念 一款高新能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000~50 000个并发请求。 1.2 nginx模块与作用 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错…

Js如何判断两个数组是否相等?

本文目录 1、通过数组自带方法比较2、通过循环判断3、toString()4、join()5、JSON.stringify() 日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有: 先判断长度,长度不等必然不等元素位置其他情况考虑 1…

Go语言中的TLS加密:深入crypto/tls库的实战指南

Go语言中的TLS加密:深入crypto/tls库的实战指南 引言crypto/tls库的核心组件TLS配置:tls.Config证书加载与管理TLS握手过程及其实现 构建安全的服务端创建TLS加密的HTTP服务器配置TLS属性常见的安全设置和最佳实践 开发TLS客户端应用编写使用TLS的客户端…

⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)

LCR 052. 递增顺序搜索树 给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 示例 1: 输入:root [5,…

⭐北邮复试刷题LCR 037. 行星碰撞__栈 (力扣119经典题变种挑战)

LCR 037. 行星碰撞 给定一个整数数组 asteroids,表示在同一行的小行星。 对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相…

stm32和嵌入式linux可以同步学习吗?

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「stm3的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!如果需要使用STM32,建…

TCP 三次握手和四次挥手

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。 1 TCP 三次握手漫画图解 如下图所示,下面的两个机器人通过3次握手确定了对方能正确接收和发送消息(图片来源网络)。 简单示意图: 客户端–发送带有 SYN 标志的数据包–一次握手…

如何使用Docker部署开源Leanote蚂蚁笔记并发布个人博客至公网

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装…

2000-2022年各省城乡收入差距泰尔指数数据(原始数据+计算过程+结果)

2000-2022年各省城乡收入差距泰尔指数数据(原始数据计算过程结果) 1、时间:2000-2022年 2、指标:地区、居民可支配收入(元)、农村家庭可支配(元)、城市家庭可支配(元&a…

【Algorithms 4】算法(第4版)学习笔记 10 - 3.3 平衡查找树(上篇)

文章目录 前言参考目录学习笔记0:符号表 ST 的回顾1:2-3 查找树1.1:定义1.2:2-3 树 demo 演示1.2.1:搜索:成功命中1.2.2:搜索:未命中1.2.3:插入:2-节点1.2.4&…

IP地理位置查询定位:技术原理与实际应用

在互联网时代,IP地址是连接世界的桥梁,而了解IP地址的地理位置对于网络管理、个性化服务以及安全监控都至关重要。IP数据云将深入探讨IP地理位置查询定位的技术原理、实际应用场景以及相关的隐私保护问题,旨在为读者提供全面了解和应用该技术…

猫头虎分享已解决Bug || SyntaxError: Unexpected token < in JSON at position 0

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

ubuntu制作windows的u盘启动盘

概要: 本篇演示在ubuntu22.04中制作windows10的u盘启动盘 一、下载woeusb 1、下载woeusb 在浏览器中输入https://github.com/woeusb/woeusb/releases访问woeusb 点击红色矩形圈出来的部分,下载woeusb 2、安装wimtools wimtools是woeusb的一个必须的…

LiveGBS流媒体平台GB/T28181功能-自定义收流端口区间30000至30249UDP端口TCP端区间配置及相关端口复用问题说明

LiveGBS自定义收流端口区间30000至30249UDP端口TCP端区间配置及相关端口复用问题说明 1、收流端口配置1.1、INI配置1.2、页面配置 2、相关问题3、最少可以开放多少端口3.1、端口复用3.2、配置最少端口如下 4、搭建GB28181视频直播平台 1、收流端口配置 1.1、INI配置 可在lives…

开启智能互动新纪元——ChatGPT提示词工程的引领力

目录 提示词工程的引领力 高效利用ChatGPT提示词方法 提示词工程的引领力 近年来,随着人工智能技术的迅猛发展,ChatGPT提示词工程正逐渐崭露头角,为智能互动注入了新的活力。这一技术的引入,使得人机交流更加流畅、贴近用户需求&…

基于CNN-GRU-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 CNN(卷积神经网络)部分 4.2 GRU(门控循环单元)部分 4.3 Attention机制部分 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版…

自动化测试测试框架封装改造

PO模式自动化测试用例 PO设计模式是自动化测试中最佳的设计模式,主要体现在对界面交互细节的封装,在实际测试中只关注业务流程就可以了。 相较于传统的设计,在新增测试用例后PO模式有如下优点: 1、易读性强 2、可扩展性好 3、…

网络图谱构建系统目前已实现的功能

一.移动智能终端: 1.主页面: 地图层调用百度地图api。要在百度地图开发社区申请密钥和服务。 界面中卡片,悬浮按钮,上标题栏都采用谷歌公司material desgin设计风格。 2.标题栏: 采用toolbar,可以应用程…

基于springboot的线上阅读系统项目实战

文章目录 目录 文章目录 前言 一、功能设计 二、功能实现 2.1 用户模块实现 2.1.1 登入注册功能 2.1.2 修改功能 2.1.3 充值功能 2.1.4 会员功能 2.1.5 阅读记录 2.2 书架模块实现 2.2.1 增加功能 2.2.2 移除功能 2.2.3 排序功能 2.3 书库模块实现 2.3.1 排行榜功能 2.3.2 分类…

Android全新UI框架之常用ComposeUI组件

在Compose中,每个组件都是一个带有Composable注解的函数,被称为Composable。Compose已经预置了很多基于MD设计规范的Composable组件。 在布局方面,Compose提供了Column、Row、Box三种布局组件(感觉跟flutter差不多),类似于传统视图…