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.xdnf.cn/news/1113837.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java写爱心

突然想用Java写一个爱心&#xff0c;程序运行效果如下&#xff1a; 话不多说&#xff0c;上代码 ! public class LovingHeart {/*** 判断坐标是否在爱心范围内*/private static boolean inHeart(float x,float y){float ax*xy*y-1;return a*a*a-x*x*y*y*y<0.0f;}/*** 爱心…

Oracle11g的安装和配置

将文件解压&#xff0c;再将P13390677_112040_MSW工H-x86-64_1of7文件里的Components文件夹下的文件考入到P13390677_112040_MSW工H-x86-64_2of7的Components文件夹下。 双击setup 取消勾选&#xff0c;后会弹出一个警告&#xff0c;点击是即可

fastjson解析自定义get方法导致空指针问题

背景 为了在日志中把出入参打印出来&#xff0c;以便验证链路和排查问题&#xff0c;在日志中将入参用fastjson格式化成字符串输出&#xff0c;结果遇到了NPE。 问题复现 示例代码 public static void main(String[] args) {OrganizationId orgId new OrganizationId();N…

Java语言实现五子棋

目录 内容 题目 解题 代码 实现 内容 题目 五子棋 使用二维数组,实现五子棋功能. 1.使用二维数组存储五子棋棋盘 如下图 2.在控制台通过Scanner输入黑白棋坐标(例如:1,2 2,1格式 表示二维数组坐标),使用实心五角星和空心五角星表示黑白棋子. 如下图: 输入后重新输出…

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

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

使用JDBC操作数据库(IDEA编译器)

目录 JDBC的本质 ​ JDBC好处 JDBC操作MySQL数据库 1.创建工程导入驱动jar包 2.编写测试代码 ​相关问题 JDBC的本质 官方(sun公司) 定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接口&#xff0c;提供数据库驱动jar包我们可以使用这…

Linux中安装Nginx及日常配置使用

高性能的http服务器/反向代理服务器。官方测试支持5万并发&#xff0c;CPU、内存等消耗较低且运行稳定 使用场景 Http服务器。 Nginx可以单独提供Http服务&#xff0c;做为静态网页的服务器。虚拟主机。 可以在一台服务器虚拟出多个网站。反向代理与负载均衡。 Nginx做反向代理…

opencv的图像上下、左右和对角线翻转—flip函数

在OpenCV中&#xff0c;flip函数用于翻转图像。你可以沿x轴、y轴或两者同时翻转图像。这个函数非常直接&#xff0c;可以用于创建镜像图像或旋转图像。 void flip(InputArray src, OutputArray dst, int flipCode);src&#xff1a;输入图像。 dst&#xff1a;翻转后的输出图像…

每日shell脚本之超级整合程序3.0

每日shell脚本之超级整合程序3.0 本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。 上图 上源码 #!/usr/bin/bash # *******************************************# # * CDDN : M乔木 # # * qq邮箱 …

Microsoft的PromptBench可以做啥?

目录 PromptBench简介 PromptBench的快速模型性能评估 PromptBench数据集介绍 PromptBench模型介绍 PromptBench模型加载遇到的问题 第一次在M1 Mac上加载模型 vicuna和llama系列模型 PromptBench各个模型加载情况总结 PromptBench的Prompt快速工程 chain of thought…

数据驱动决策:掌握高效数据分析的七大步骤

在这个数据驱动的时代&#xff0c;无论是企业决策还是个人发展&#xff0c;数据分析都扮演着至关重要的角色。然而&#xff0c;想要从海量数据中提炼出有价值的信息&#xff0c;并不是一件容易的事情。本文为你详细解读高效数据分析&#xff0c;让你的数据开口说话&#xff0c;…

史上集中度最高的市场!13图读懂“七姐妹”主宰下的美股

随着AI需求大爆发&#xff0c;人类进入人工智能时代。历史上&#xff0c;每当出现新的技术都会经济结构性变化&#xff0c;有的发展得快而平稳&#xff0c;有的则导致了投资的繁荣和萧条周期。此次AI的爆发带来的究竟是泡沫还是繁荣&#xff1f; 德意志银行分析师Jim Reid上周…

【软件架构】03-架构设计流程

1、识别复杂度 确定了系统面临的主要复杂度问题&#xff0c;进而明确了设计方案的目标&#xff0c; 2、设计备选方案 一般三到五个&#xff0c;防止思维狭隘 从需求、团队、技术、资源等综合情况出发&#xff0c;对主流、成熟的架构模式进行选择。 3、评估和选择备选方案 …

UE5 视角跳转

1.在所需要的位置放置 camera actor 2.编写视角跳转蓝图 3.注意

简述全光谱太阳光模拟器的工作原理

太阳是地球上最重要的能源来源之一&#xff0c;它的热能和光能支撑着地球上的所有生命。太阳的能量是如何被科学家们研究和利用的呢&#xff1f;这就要提到太阳光模拟器了。太阳光模拟器是一种能够模拟太阳光的设备&#xff0c;它可以产生与太阳光相似的光谱和强度&#xff0c;…

判断CGH40010F氮化镓管子的好坏-QSWL

判断CGH40010F氮化镓管子的好坏-QSWL 参考&#xff1a;https://zhuanlan.zhihu.com/p/624299054 今天非常搞笑&#xff0c;淘宝买了几个CGH40010F的管子&#xff0c;结果到货的非常奇葩&#xff0c;所有的管子栅极和漏极居然是反的&#xff0c;要商家退款商家还说都是全新原装…

JDBC简介

JDBC体系结构 Java Data Base Connectivity&#xff08;JDBC&#xff09;&#xff0c;Java数据库连接。 JDBC重要的类和接口 JDBC API 定义了一组用于与数据库进行通信的接口和类&#xff0c;这些接口和类都定义在Java.sql包中。 类或接口作用DriverManager处理驱动程序的加…

Internet Download Manager(IDM)中文破解版v6.42.3.1绿色版

IDM软件的多线程下载技术很牛逼&#xff0c;默认16个线程&#xff0c;可以跑满下载速度 提升你的下载速度最多达5倍&#xff0c;安排下载时程&#xff0c;或续传一半的软件。Internet Download Manager的续传功能可以恢复因为断线、网络问题、计算机当机甚至无预警的停电导致下…

【linux】【Shell】Linux基础命令集

目录 一、常用操作命令 二、编辑命令 三、挂载磁盘命令 一、常用操作命令 1、cd :更改文件目录命令 1.切换到主目录cd2.切换到目录/tmpcd /tmp3.切换到当前目录 dir目录cd dir4.切换到根目录cd /5.切换到上一级目录cd ..6.切换到二级目录cd ../..7.切换到主目录&#xff0…

xxl-job架构原理讲解

1、调度中心 调度中心是一个单独的Web服务&#xff0c;主要是用来触发定时任务的执行 它提供了一些页面操作&#xff0c;我们可以很方便地去管理这些定时任务的触发逻辑 调度中心依赖数据库&#xff0c;所以数据都是存在数据库中的 调度中心也支持集群模式&#xff0c;但是…