Nginx网络服务

一、Nginx概述

1.1Nginx介绍

Nginx:

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

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。

对HTTP并发连接的处理能力高,单台物理服务器可支持30000~50000个并发请求。

Apache:

Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适用于多处理器环境,因此,在一个apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

1.2Nginx和Apache的差异

Apache: 创建多个进程或线程,而每个进程或线程都会为其分配cpu和内存(线程要比进程小的多,所以worker支持比perfork高的并发),并发过大会榨干服务器资源。

Nginx: 采用单线程来异步非阻塞处理请求(管理员可以配置Nginx主进程的工作进程的数量),不会为每个请求分配cpu和内存资源,节省了大量资源,同时也减少了大量的CPU的上下文切换。所以才使得Nginx 支持更高的并发。

1.3Nginx和Apache的优缺点比较

(1)nginx相对于apache的优点∶

  • 轻量级,同样起web服务,比apache占用更少的内存及资源
  • 抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能
  • 高度模块化的设计,编写模块相对简
  • 支持热部署,平滑升级

(2)apache相对于nginx的优点∶

  • Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)
  • 模块多,基本想到的都可以找到
  • 少bug, nginx的bug相对较多
  • 超稳定
  • Nginx处理动态请求是弱项,动态请求要Apache去做。

总结:一般来说,需要性能的web服务,用Nginx. 如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。

1.4Nginx的进程

Apache和Nginx的默认端口都是80,如果其中一个已经启动了,那么再启动另一个会报错。如果想要同时使用,可以修改其中一个的端口号。

Nginx有两个进程:

master process:主进程(守护进程),用来管理工作进程。

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

二、编译安装Nginx服务

源码包内的文件:

  • contrib:vim 格式文件,修改nginx配置文件的格式,高亮 cp -r /opt/nginx-1.18.0/contrib/vim/* /usr/share/vim/vimfiles/

  • conf:配置文件

  • man:man帮助 man man/nginx.8 不加路径看不了 nginx.8 文件

  • src:源码包 点c 点h 结尾的文件 find src -type f |xargs cat |wc -l 193678

2.1 关闭防火墙和selinux

2.2安装依赖包

nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

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

2.3创建运行用户、组

Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限

[root@localhost ~]# useradd -M -s /sbin/nologin/ nginx

2.4将安装nginx所需的软件包

2.5将安装包传到/opt目录下并解压

./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 

 2.6做软连接

2.6修改权限

2.7开启和关闭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

三、Nginx小命令

3.1信号

3.1.1指定配置 不已配置文件中的为准

 

3.1.2日志分割

3.1.3显示版本

3.1.4显示编译详细情况 模块等信息

3.1.5检查语法

3.1.6发送信号

kill -l  看信号大全
nginx -h   中可以看到的信号较少
s signal     : send signal to a master process: stop, quit, reopen, reload

可以使用man手册来查看详细的信号 如果没安装,去源码包里找到man文件
man   路径/nginx.8      不加路径打不开man帮助
stop          SIGTERM        直接停止
quit           SIGQUIT        优雅的退出:有人在访问不会结束进程
reopen       SIGUSR1        分割日志
reload       SIGHUP         重新加载配置文件
            SIGHUP           Reload configuration, start the new worker process with a new configuration, and
                             gracefully shut down old worker processes.
             SIGQUIT          Shut down gracefully.  优雅的关闭:有人在访问不会结束进程
             SIGUSR1          Reopen log files.       重新分割日志
             SIGUSR2          Upgrade the nginx executable on the fly.  运行中升级
             SIGWINCH         Shut down worker processes gracefully.    优雅的关闭worker进程,work进程负责处理请求,还有请求不会关闭
             
             
             
帮助: -? -h
使用指定的配置文件: -c
指定配置指令:-g
指定运行目录:-p
测试配置文件是否有语法错误:-t -T
打印nginx的版本信息、编译信息等:-v -V
发送信号: -s 示例: nginx -s reload

3.1.7升级 nginx1.18 nginx1.20

 

3.1.8回滚

四、Nginx优化小命令

4.1全局配置

nginx 官方帮助文档:nginx documentation

tengine 帮助文档:Nginx文档

Nginx的配置文件的组成部分:

主配置文件:nginx.conf

子配置文件: include conf.d/*.conf

配置文件由指令和指令块构成
每条指令以;分号结尾,指令与值之间以空格符号分隔
pid    /apps/run/nginx.pid
指令已{}达括号将多条指令组织在一起且可以嵌套指令块
include语句允许组合多个配置文件以提升可维护性 
#号注释
$使用变量
部分支持正则
自定义变量:由用户使用set命令定义,格式: set variable_name value

全局配置
events{  控制事件驱动      }
http  {  web网页配置有关   server  { location  }   }

main block:主配置段,即全局配置段,对http,mail都有效

#事件驱动相关的配置   同步
event {
 ...
}   
#http/https 协议相关配置段
http {
 ...
}          
#默认配置文件不包括下面两个块
#mail 协议相关配置段
mail {
 ...
}    
#stream 服务器相关配置段
stream {负载均衡
 ...
}
 

nginx 有多种模块

  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能

  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

  • Stream服务模块: 实现反向代理功能,包括TCP协议代理

  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

4.1.1 关闭版本或修改版本

关闭版本

修改版本

 

 

4.1.2 修改启动的进程数

4.1.3cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

4.1.4 PID 路径

4.1.5 nginx进程的优先级(work进程的优先级)

4.1.6 调试work进程打开的文件的个数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Day22--learning English

一、积累 1.wool 2.stern 3.resolute 4.feisty 5.pickle 6.quail 7.frame 8.hose 9.ravish 10.Base on what 11.nimble 12.shutter 13.spawn 14.shiver 15.blanket 16.squat 17.braise 18.jam tomorrow 19.drip 20.repercussion 二、练习 1.牛津原译 Wool [ wʊl ] [名词] 1.…

Linux篇:指令

一 基本常识: 1. 文件文件内容文件的属性 2. 文件的操作对文件内容的操作对文件属性的操作 3. 文件的类型: d:目录文件 -:普通文件 4. 指令是可执行程序,指令的代码文件在系统的某一个位置存在的。/u…

鸿蒙-基于ArkTS声明式开发的简易备忘录,适合新人学习,可用于大作业

本文地址:https://blog.csdn.net/qq_40785165/article/details/136161182?spm1001.2014.3001.5502,转载请附上此链接 大家好,我是小黑,一个还没秃头的程序员~~~ 不知不觉已经有很长一段时间没有分享过自己写的东西了&#xff0…

Nginx操作

文章目录 Nginx使用操作1. 安装nginx2. docker启动nginx3. 目录介绍4. 更改站点内容,初试一下(此步骤可以省略)5. nginx配置文件结构5.1 http配置示例5.2 server配置 Nginx使用操作 服务器: ubuntudocker内操作nginx 1. 安装nginx # 1. 查询nginx版本 sudo docker…

Atcoder ABC340 C - Divide and Divide

Divide and Divide(分而治之) 时间限制:2s 内存限制:1024MB 【原题地址】 所有图片源自Atcoder,题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例…

《Solidity 简易速速上手小册》第5章:智能合约的安全性(2024 最新版)

文章目录 5.1 安全性的重要性5.1.1 基础知识解析深入理解安全性的多维度影响智能合约安全的关键要素 5.1.2 重点案例:防止重入攻击案例 Demo:构建一个防重入的提款合约案例代码WithdrawContract.sol 测试和验证拓展功能 5.1.3 拓展案例 1:预防…

拿捏c语言指针(下)

前言 此篇讲解的主要是函数与指针的那些事~ 书接上回 拿捏c语言指针(上)和 拿捏c语言指针(中) ​​​​​​没有看的小伙伴要抓紧喽~ 欢迎关注​​个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误&#x…

STM32_ESP8266 连接阿里云 操作图解

一、烧录MQTT固件 ESP8266出厂时,默认是:AT固件。连接阿里云需要:MQTT固件。 因此,我们需要给8266重新烧录 MQTT固件。 针对“魔女开发板,ESP8266模块烧录MQTT固件,图解教程如下: ESP8266 烧录 …

【Vuforia+Unity】AR01实现单张多张图片识别产生对应数字内容

1.官网注册 Home | Engine Developer Portal 2.下载插件SDK,导入Unity 3.官网创建数据库上传图片,官网处理成数据 下载好导入Unity! 下载好导入Unity! 下载好导入Unity! 下载好导入Unity! 4.在Unity设…

在 Vue 中将 DOM 导出为图片

你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧! 在日常的工作中&…

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff0…

基于物联网智慧公厕的多功能城市智慧驿站

在现代城市发展中,智慧化已经成为了一个不可或缺的趋势。而多功能城市智慧驿站,作为智慧城市建设的一部分,以物联网智慧公厕为基础,集合了诸多功能于一身,成为了城市中不容忽视的存在。多功能城市智慧驿站也称为轻松的…

05 扩展组件:自定义CheckBox组件

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 目…

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 111 二叉树的最小深度 Leetcode 110 平衡二叉树

【深度优先】【广度优先】Leetcode 104 二叉树的最大深度 Leetcode 111 二叉树的最小深度 Leetcode 110 平衡二叉树 Leetcode 104 二叉树的最大深度解法1 深度优先 递归法 后序:左右中解法2 广度优先:层序遍历 Leetcode 111 二叉树的最小深度解法1 深度…

SNAT与DNAT公私网地址转换

前言 SNAT和DNAT是两种重要的网络地址转换技术,它们允许内部网络中的多个主机共享单个公共IP地址,或者将公共IP地址映射到内部网络中的特定主机。这些技术在构建企业级网络和互联网应用程序时非常重要,因为它们可以帮助保护内部网络安全&…

ONLYOFFICE 8.0:引领数字化办公新纪元

目录 前言 软件安装 软件启动 软件新版本特性 个人评价 总结 前言 在当今快节奏的数字化世界中,高效的办公软件已成为企业竞争力的关键因素。ONLYOFFICE,作为全球领先的办公解决方案提供商,始终致力于通过技术创新来优化用户体验。如今…

阿里云的流量价格表_2024阿里云服务器流量费用表

阿里云服务器宽带按使用流量怎么收费的?价格为0.8元/GB,地域不同流量价格也不同,北京、杭州、上海、深圳等中国大陆地域是0.8元每GB,中国香港是1元/GB,美国流量0.5元1GB、日本流量0.6元、韩国流量0.8元,阿里…

linux 修改开发板网卡eth0的ip地址

win10如何新增电脑ip地址: https://blog.csdn.net/linxinfa/article/details/105817473 ifconfig # 可设置网络设备的状态,或是显示目前的设置。 命令详解:https://www.runoob.com/linux/linux-comm-ifconfig.html 一、临时修改 ifconfig e…

[05] computed计算属性

computed计算属性 语法: 声明在 computed 配置项中,一个计算属性对应一个函数使用起来和普通属性一样使用 {{计算属性名}} 注意 computed配置项和data配置项是同级的computed中的计算属性虽然是函数的写法,但它依然是属性computed中的计算…

C++:C++入门基础

创作不易,感谢三连 !! 一、什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机&#xff…