【Nginx介绍和安装与升级】
作者:mmseoamin日期:2023-12-20

文章目录

  • Nginx网站服务
  • 一、nginx服务基础
    • 1. Nginx简介
    • 2. Tengine
    • 3. Nginx 相对于 Apache 的优点
    • 4. 阻塞与非阻塞 同步与异步
    • 5. nginx 应用场景
    • 二、编译安装nginx 服务
      • 1. 在线安装nginx
      • 2. nginx编译安装
        • 1. 关闭防火墙,将安装nginx所需软件包传到/opt目录下
        • 2. 安装依赖包
        • 3. 创建运行用户与组
        • 4.编译安装Nginx
        • 5. 检查、启动nginx服务
        • 三、升级Nginx
          • 1. Nginx平滑升级1.12.2->1.20.2
          • 2. 解压迭代版本的压缩包
          • 3. 关闭正在使用的Nginx进程
          • 4. 配置新版本的安装路径和依赖包
          • 5. 编译
          • 6. 备份旧版本并启动查看版本

            Nginx网站服务

            一、nginx服务基础

            1. Nginx简介

            Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器。Nginx 是由 Igor Sysoev 为俄

            罗斯访问点开量第二的 Rambler.ru 站发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻

            名。2011 年 6 月 1 日,Nginx 1.0.4 发布。1.18 1.20 1.22 1.12

            ​ Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,

            单台物理服务器可支持30 000~50 000个并发请求。并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有:百度 BWS、新浪、网易、腾讯、等。

            2. Tengine

                 Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添
            

            加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网、天猫商城等得到了很好

            的检验。(可以这样理解:淘宝网拿到了 Nginx 源代码之后,进行了功能的填充、优化等等,然后提交给

            Nginx 官方,但是由于 Nginx 官方相应慢甚至不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打

            包,在遵循 GPL 的原则上进行二次开发,于是就出了现在的 Tengine 这个版本)

            官网网站:http://tengine.taobao.org/

            3. Nginx 相对于 Apache 的优点

            1. 轻量级高并发处理能力
            2. 配置简单灵活
            3. 高性能静态内容处理
            4. 处理高流量网站
            5. 更好的反向代理功能

            4. 阻塞与非阻塞 同步与异步

            阻塞与非阻塞

            阻塞和非阻塞指的是调用者 (程序) 在等待返回结果 (或输入) 时的状态。阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。非阻塞时如果不能立刻得到结果,则该调用者不会阻塞当前线程。因此对应非阻塞的情况调用者需要定时轮询查看处理状态。

            同步与异步

            同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。

            异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。

            简单理解就是

            阻塞:死等,直到处理出结果

            非阻塞:在等待结果时可以先干别的事,但要时不时查看处理进度

            同步:在执行某个请求时,出结果了但是没有返回信息,进程要一直等下去,直到收到返回信息才能执行下去

            非同步:在一个进程处理某个请求时,可以继续干别的事,等第一个请求处理完后会自动处理下一个请求

            5. nginx 应用场景

            ① 静态服务器 (图片、视频服务、文本)

            ② 动态服务

            ③ 反向代理, 负载均衡

            ④ 缓存服务

            nginx 中http七层代理和四层代理

            ​ web服务器

            做:代理 服务器

            ​ 反向代理, 负载均衡

            二、编译安装nginx 服务

            1. 在线安装nginx

            1. yum部署Nginx

              ①使用yum部署Nginx需要先安装epel-release扩展包,官方源默认没有Nginx的yum源。

            yum install epel-release  -y
            

            #安装epel-release扩展源

            ②扩展源安装完后直接安装Nginx。

            yum install nginx -y 
            

            #安装nginx服务

            ③使用yum安装的nginx配置文件位置在:/etc/nginx.conf。默认根目录在:/usr/share/nginx/html。默认日志文件在:/var/log/nginx/路径下。

            2. nginx编译安装

            1. 关闭防火墙,将安装nginx所需软件包传到/opt目录下

            systemctl stop firewalld
            systemctl disable firewalld
            setenforce 0
            

            下载安装包:nginx-1.12.0.tar.gz

            这里下载安装包 https://nginx.org/download/nginx-1.18.0.tar.gz

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

            2. 安装依赖包

            #nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
            yum -y install pcre-devel zlib-devel gcc gcc-c++ make
            yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
            

            3. 创建运行用户与组

            #创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)
            useradd -M -s /sbin/nologin nginx
            

            4.编译安装Nginx

            cd /opt
            tar zxvf nginx-1.12.0.tar.gz -C /opt/
            cd nginx-1.12.0/
            ./configure \
            --prefix=/usr/local/nginx \					#指定nginx的安装路径
            --user=nginx \								#指定用户名
            --group=nginx \								#指定组名
            --with-http_stub_status_module				#启用 http_stub_status_module 模块`在这里插入代码片`以支持状态统计操作  VTS
            cd nginx-1.12.0/
            ./configure \
            --prefix=/usr/local/nginx \
            --user=nginx \
            --group=nginx \
            --with-http_stub_status_module	
            make && make install
            ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令
            

            5. 检查、启动nginx服务

            nginx -t								#检查配置文件是否配置正确
            #启动
            nginx
            

            三、升级Nginx

            新版本升级:
            tar -zxvf nginx-1.xx.xx.tar.gz  1.20.2
            cd nginx-1.xx.xx
            ./configure \
            --prefix=/usr/local/nginx \		
            --user=nginx \					
            --group=nginx \					
            --with-http_stub_status_module \
            --with-http_ssl_module
            make
            mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old   备份
            cp objs/nginx /usr/local/nginx/sbin/nginx
            重启服务 并且
            nginx -V   #查看版本
            

            1. Nginx平滑升级1.12.2->1.20.2

            【Nginx介绍和安装与升级】,在这里插入图片描述,第1张

            2. 解压迭代版本的压缩包

            【Nginx介绍和安装与升级】,在这里插入图片描述,第2张

            3. 关闭正在使用的Nginx进程

            【Nginx介绍和安装与升级】,在这里插入图片描述,第3张

            4. 配置新版本的安装路径和依赖包

            【Nginx介绍和安装与升级】,在这里插入图片描述,第4张

            5. 编译

            【Nginx介绍和安装与升级】,在这里插入图片描述,第5张

            6. 备份旧版本并启动查看版本

            【Nginx介绍和安装与升级】,在这里插入图片描述,第6张