Linux:Nginx服务与搭建

目录

一、Nginx概述

二、Nginx三大作用:反向代理、负载均衡、动静分离

三、Nginx和Apache

3.1Nginx和Apache的差异 

3.2Nginx和Apache的优缺点比较

四、编译安装niginx

五、创建Nginx 自启动文件 

 六、Nginx的信号使用

6.1信号

七、升级 nginx1.18 nginx1.20


一、Nginx概述

Nginx概述

  • 一款高新能、轻量级Web服务软件
  • 稳定性高
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高
  • 单台物理服务器可支持30 000~50 000个并发请求。

Nginx 功能介绍

  • 静态的web资源服务器html,图片,js,css,txt等静态资源

  • http/https协议的反向代理 7层

  • 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求

  • tcp/udp协议的请求转发(反向代理) 4层

基础特性

  • 模块化设计,较好的扩展性

  • 高可靠性

  • 支持热部署:不停机更新配置文件,升级版本,更换日志文件

  • 低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存

  • event-driven,aio,mmap,sendfile

Web 服务相关的功能

  • 虚拟主机(server)

  • 支持 keep-alive 和管道连接(利用一个连接做多次请求)

  • 访问日志(支持基于日志缓冲提高其性能)

  • url rewirte

  • 路径别名

  • 基于IP及用户的访问控制

  • 支持速率限制及并发数限制

  • 重新配置和在线升级而无须中断客户的工作进程

二、Nginx三大作用:反向代理、负载均衡、动静分离

反向代理:

在服务端 配置,客户端 访问服务器A ,服务器A 为代理服务器 ,将客户服务再转发到服务器B 

作用:缓存,将服务器的响应缓存在自己的内存中,减少服务器压力;

           负载均衡,将用户请求分配给多个服务器;

           访问控制;

正向代理

在客户端 配置,配置完了再去访问具体服务,即代理服务器 代理了客户端 ,再去和目标服务器 进行交互

 作用:提高访问速度

            隐藏客户端真实IP地址

负载均衡:分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

三、Nginx和Apache

3.1Nginx和Apache的差异 

  • 轻量级,Nginxt比Apache占用更少的内存及资源:
  • 静态处理,Nginx静态处理性能比Apache高;
  • Nginx可以实现无缓存的反向代理加速,提高网站运行速度;
  • Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级;
  • Nginx高度模块化,编写模块相对简单,且组件比Apache少;
  • 高并发下Nginx能保持低资源低消耗高性能;
  • Nginx是异步进程,多个连接可以对应一个进程;Apache是同步多进程,一个连接对应一个进程;
  • Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件;
  • Nginx配置简洁,Apache配置复杂。

3.2Nginx和Apache的优缺点比较

nginx相对于apache的优点∶

轻量级,同样起web服务,比Apache占用更少的内存及资源。
高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。
高度模块化的设计。
编写模块相对简。
社区活跃,各种高性能模块出品速度
apache相对于nginx的优点∶

rewrite比nginx的rewrite强大
模块多,基本想到的都可以找到
少bug, Nginx的bug相对较超稳定


四、编译安装niginx

安装依赖包

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

下载安装包

nginx安装官网:https://nginx.org/en/download.html

wget http://nginx.org/download/nginx-1.18.0.tar.gz

 新建运行用户、组

 编译安装nginx

tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0/
mkdir /apps/nginx -p
 
./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
 
 
make -j2 && make install
 
chown -R nginx.nginx /apps/nginx

 创建软连接后直接 nginx启动

ln -s /apps/nginx/sbin/nginx /usr/sbin/

 

五、创建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
[Install]
WantedBy=multi-user.target

 

 重新加载配置、设置开机自启并开启服务

  1. systemctl daemon-reload               重新加载配置

  2. systemctl enable --now nginx         设置开机自起

  3. systemctl status nginx.service        查看服务状态

 若出现

问题其一(1) 如果卡主是应为logs下有 nginx.pid  文件  删除即可

问题其二(2)检查80端口是否被占用

 六、Nginx的信号使用

6.1信号

nginx 命令支持向其发送信号,实现不同功能

nginx 当做单独命令使用有以下选项

信号意义
nginx -v显示版本
显示编译详细情况、模块等信息
检查语法格式
打印当前配置
发送信号
立即关闭
优雅退出,不影响业务
重新加载配置文件
分割日制
优雅升级

信号意义
nginx -v显示版本
nginx -V显示编译详细情况、模块等信息
nginx -t检查语法格式
nginx -T打印当前配置
nginx -s发送信号
nginx -s stop立即关闭
nginx -s quit优雅退出,不影响业务
nginx -s reload重新加载配置文件
nginx -s  USR1分割日制
nginx -s  USR2优雅升级
nginx -g 'user lisi;’以lisi身份运行,默认是以nginx身份
nginx -g 'daemon off;'前台运行命令

七、升级 nginx1.18 nginx1.20

  1. 将旧Nginx文件换成新Nginx文件(注意备份)

  2. 向master进程发送USR2信号

  3. master进程修改pid文件名,加后缀.oldbin

  4. master进程用新Nginx文件启动新master进程,系统中将有新旧两个Nginx主进程共同提供Web服务

  5. 向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止,并删除Nginx.pid.oldbin文件

  6. 向旧master进程发送QUIT信号,关闭老master

  7. 如果发现升级有问题,可以回滚向老master发送HUP,向新master发送QUIT

 

 

 添加新模块

 

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

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

相关文章

企业展示小程序的制作流程及关键步骤详解

在移动互联网时代,企业展示小程序已成为各个行业推广和展示的重要工具。搭建一个企业展示小程序不仅能够提高企业形象,还能够增加用户粘性和提升用户体验。下面我们来看一下如何从零基础搭建一个企业展示小程序,并顺利上线。 第一步&#xff…

2023.8 - java - 多态

多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作, 多态的优点 1. 可替换性2 可扩充性3. 接口性、灵活性、简化性4. 消除类型之间的耦合关系 多态存在的三个必要条件 继承重写父类引用指向子类…

【负载均衡】Nacos简单入门

Nacos简单入门 快速安装 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: 下载完压缩包之后,放在任意目录下面进行解压: GitHub主页:https://github.com/alibaba/nacos G…

机器学习策略——优化深度学习系统

正交化(Orthogonalization) 老式电视机,有很多旋钮可以用来调整图像的各种性质,对于这些旧式电视,可能有一个旋钮用来调图像垂直方向的高度,另外有一个旋钮用来调图像宽度,也许还有一个旋钮用来…

AIGC ChatGPT 按年份进行动态选择的动态图表

动态可视化分析的好处与优势: 1. 提高信息理解性:可视化分析使得大量复杂的数据变得易于理解,通过图表、颜色、形状、尺寸等方式,能够直观地表现不同的数据关系和模式。 2. 加快决策速度:数据可视化可以帮助用户更快…

RV64函数调用流程分析

RV64函数调用流程分析 1 RV64 函数调用实例2 对应代码的分析2.1 main函数及其对应的汇编程序2.1.1 main的C代码实现2.1.2 main函数对应汇编及其分析2.1.3 执行完成之后栈的存放情况 2.2 test_fun_a函数及其对应的汇编程序2.2.1 test_fun_a函数的C实现2.2.2 test_fun_a函数对应汇…

Flask狼书笔记 | 04_表单

文章目录 4 表单4.1 HTML表单4.2 使用Flask-WTF4.3 处理表单数据4.4 表单进阶实践小记 4 表单 表单是和用户交互最常见的方式之一&#xff0c;本章涉及的Python包由WTForms、Flask-WTF、Flask-CKEditor。&#xff08;p104&#xff09; 4.1 HTML表单 通过<form>标签创建…

2023国赛数学建模E题思路模型代码 高教社杯

本次比赛我们将会全程更新思路模型及代码&#xff0c;大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

【C/C++】父类指针指向子类对象 | 隐藏

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

ICCV 2023 Oral | 从无约束图像集合中生成新视角的交叉光线神经辐射场

文章链接&#xff1a;https://arxiv.org/abs/2307.08093 代码链接&#xff1a;https://github.com/YifYang993/CR-NeRF-PyTorch.git 01. 介绍 本工作旨在通过从不受限制的图像集合&#xff08;例如从互联网中爬取的图像&#xff09;中合成新视角图片&#xff0c;从而提供3D沉浸…

5.网络原理之初识

文章目录 1.网络发展史1.1独立模式1.2网络互连1.3局域网LAN1.3.1基于网线直连1.3.2基于集线器组建1.3.3基于交换机组建1.3.4基于交换机和路由器组建1.3.4.1路由器和交换机区别 1.4广域网WAN 2.网络通信基础2.1IP地址2.2端口号2.3认识协议2.4五元组2.5 协议分层2.5.1 分层的作用…

DTC状态变化例子 4

例子1&#xff1a; 此示例概述了两个操作周期排放相关的 OBD DTC 中 DTC 状态位的操作。该图显示了两个操作周期排放相关的 OBD DTC 的处理。该处理也可应用于非排放相关的 OBD DTC&#xff0c;此处显示仅供一般参考。 0 接收到清除诊断信息 → DTC 状态字节初始化。 1, 2 相关…

(动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

❓剑指 Offer 48. 最长不含重复字符的子字符串 难度&#xff1a;中等 请从字符串中找出一个最长的不包含重复字符的子字符串&#xff0c;计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为…

JVM7:垃圾回收是什么?从运行时数据区看垃圾回收到底回收哪块区域?垃圾回收如何去回收?垃圾回收策略,引用计数算法及循环引用问题,可达性分析算法

垃圾回收是什么&#xff1f;从运行时数据区看垃圾回收到底回收哪块区域&#xff1f; 垃圾回收如何去回收&#xff1f; 垃圾回收策略 引用计数算法及循环引用问题 可达性分析算法 垃圾回收是什么&#xff1f;从运行时数据区看垃圾回收到底回收哪块区域&#xff1f;垃圾回收如何去…

ctfshow web入门 web103-web107

1.web103 和102一样 payload: v2115044383959474e6864434171594473&v3php://filter/writeconvert.base64-decode/resource1.php post v1hex2bin2.web104 值只要一样就可以了 payload: v21 post v113.web105 考查的是$$变量覆盖,die可以带出数据,输出一条消息&#xf…

C# winform加载yolov8模型测试(附例程)

第一步&#xff1a;在NuGet中下载Yolov8.Net 第二步&#xff1a;引用 using Yolov8Net; 第三步&#xff1a;加载模型 private IPredictor yolov8 YoloV8Predictor.Create("D:\\0MyWork\\Learn\\vs2022\\yolov_onnx\\best.onnx", mylabel); 第四步&#xff1a;图…

c++存取dat数据

众所周知&#xff0c;dat是一个类似加密的二进制格式文件&#xff0c;很多人喜欢将游戏数据保存在dat文件中&#xff0c;只有知道你的存放格式&#xff0c;才能够将数据破解出来&#xff0c;因而研究了dat文件的存取方式。其实就是c文件的操作&#xff0c;只不过是在取的时候需…

0基础入门C++之类和对象下篇

目录 1.再谈构造函数1.1构造函数赋值1.2初始化列表1.3explicit关键字 2.static成员2.1概念2.1静态成员变量2.2静态成员函数2.3特性 3.匿名对象4.友元函数4.1友元函数4.2友元类 5.内部类6.再次理解类和对象 1.再谈构造函数 首先我们先来回忆一下构造函数&#xff1a; 构造函数是…

华为OD-整数对最小和

题目描述 给定两个整数数组array1、array2&#xff0c;数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素&#xff0c;现在需要取出k对元素&#xff0c;并对取出的所有元素求和&#xff0c;计算和的最小值 代码实现 # coding:utf-8 class Solution:…

【工具使用】Git的使用

dev代表开发版 1. git clone 命令 通过 git add <name> 对文件进行跟踪&#xff0c;把<name>加入到暂存区 git commit -m XXXXXXX 提交修改并补充XXXXX作为注释 “暂存”状态&#xff1a;出现了一些修改&#xff0c;但是还没有提交 对于Java来说&#xff0c;.cl…