• Nginx的安装和使用


    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应。

    一、Nginx的安装

    (1)安装nginx软件所需的依赖插件

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

    (2)把我们的nginx安装包上传到linux中并解压。推荐可以把它放在  /usr/local下。

    (3)创建一个目录作为nginx的安装目录 (一般放在usr的子目录下)

    mkdir /usr/nginx

    (4) 进入nginx的解压目录

    (5) 设置nginx的安装路径为上面/usr/nginx

    ./configure --prefix=/usr/nginx

    (6) 编译--安装

    make install

    安装好以后,进入到 /usr/nginx目录内,会有如下的文件:

    conf: 配置目录

    html: 放置静态资源的。

    logs: 日志

    sbin: 启动和关闭nginx的脚本

    (7) 启动nginx

    ./nginx                          开启nginx

    ./nginx -s stop              关闭nginx

    ./nginx -s reload          重新加载配置文件---修改完配置文件后使用该命令

    (8) 防火墙放行nginx的端口号

    firewall-cmd --add-port=端口号/tcp --zone=public --permanent

    (9) 在浏览器中访问nginx

    输入我们Linux的ip地址(端口号为默认的80时不需要输入端口号)     访问成功会出现如下页面:

    初步接触Nginx的配置文件(/usr/nginx/conf里的nginx,conf):

    nginx中的默认配置:

     这里的index.html文件的内容就是我们输入网址以后默认看到的内容

     按照它的葫芦,我们可以画一个自己瓢:画完瓢记得重启nginx       ./nginx -s reload

     这里我们相当于让Nginx直接代理了我们的tomcat的项目(熟悉的8080端口),这样在访问项目的时候就不用再输入原先的8080端口号,只需要输入81的端口号就可以了。现在只是初步设置,你可能感觉这样并没有什么篮子用。接下来就讲述以下它真正的用途:

    二、nginx三大核心

    1、反向代理

    2、负载均衡

    3、动静分离

    1、反向代理

    正向代理: 该服务器代理的为客户端,对于后面真实的服务器来说,不知道访问者的地址。比如:翻墙软件。

     反向代理: 该服务器代理的为服务器端,对于客户来说不知道访问的真实服务器

    使用Nginx完成反向代理:

    其实我们在安装的最后面已经说明了反向代理的实现。我们画的那个瓢就相当于反向代理。它反向代理了我们的项目所在的服务器ip,用户访问时访问的是nginx的代理服务器的ip,然后代理服务器负责访问我们的真实项目所在的服务器的ip,这样可以不让用户知道我们真实的服务器的ip,一定程度上也起到了保护作用

    2、负载均衡

    在公司里我们的项目会被运行在好几台服务器上,这些服务器运行的都是同一个东西,为的就是提高并发量。用户访问Nginx代理服务器以后,由代理服务器负责分配用户到底访问哪一个服务器,它会根据我们分配的策略来进行合理分配(默认不设置会进行轮询分配,轮询分配可以理解为发牌员的发牌)。

    nginx.conf的配置:(配置完不要忘了重启nginx)

     根据上面的配置,我们创建了一个集群,名称为ban,集群中一共由两个服务,相当于两台服务器(因为只有一台电脑,所以只能用端口号的不同来区别这两个服务器,真正使用时这些服务器的ip都不相同)。然后让我们的nginx直接代理这个集群。用户访问nginx的代理ip:81,nginx就会以轮询的方式分配服务器。

    负载均衡的策略:

    1)、轮询(默认)

      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    2)、weight

      指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    2)、ip_hash

      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

     3、动静分离

    动静分离就是让静态资源由我们的nginx来管理,这样当我们修改静态资源时,只是修改了代理服务器上的内容,而不是每一个真实服务器的内容都要修改,这样大大节省了效率。

    动静分离的使用:

    将springboot项目中的Static文件提取出来,将不带static文件的项目打包成jar,放到linux中(一般都放在 /project中),然后将static文件放到nginx的根目录下(/usr/nginx/)。然后修改我们的配置文件:

     重启nginx,运行项目(java -jar 工程),如果我们直接访问真实服务器地址,静态资源无法加载,但是通过nginx代理服务器访问项目,静态资源就可以加载。这就实现了我们的动静分离的原则。

    三、nginx的高可用

    我们的Nginx虽然承受并发的能力非常强,但不排除由意外情况导致我们的nginx会宕机。为了尽可能使我们的项目正常运行,这时我们可以启用备胎计划,也就是再搞一台服务器当做代理服务器,这两台代理服务器之间有一个主从关系。平常我们的备胎代理服务器不会使用,当标记为MASTER的主代理服务器宕机了,我们的被标记为BACKUP的从代理服务器就可以成功上位,充当MASTER的位置实现代理功能,当MASTER的代理服务器正常运行以后,BACKYUP就退居二线,不再使用。

    想要实现高可用,需要为每一个代理服务器上安装好  Keppalived  :

    yum install -y keepalived 安装keepalived

    rpm -q -a keepalived  检查是否安装keepalived

    然后修改我们的keepalived的配置文件:(位置在:/etc/keepalived/keepalived.conf

     nginx_check.sh脚本里的内容(脚本看不懂的可以去菜鸟教程大致理解一下)

     这些都配置好以后,启动两台nginx代理服务器

    ./nginx

    并启动两台代理服务器上的keepalived

    systemctl start keepalived

    当我们MASTER机的nginxstop运行,脚本启动,同时关闭了我们的keepalived。

    这时负责代理功能的服务器就是标记为BACKUP的我们的从服务器。当主代理服务器正常运行时,负责代理功能的服务器就是标记为MASTER的代理服务器,BACKUP服务器不负责代理。

    注意:你在keepalived.conf里面配置的是你的代理服务器的ip,你的nginx.conf里面配置的是你真实服务器的ip集群。两台代理服务器的nginx.conf配置文件的内容应当相同,毕竟代理的都是相同的服务器。

          

  • 相关阅读:
    找年龄最大的人
    拔掉网线后, 原本的 TCP 连接还存在吗?
    EM3DANI包详解:使用Julia语言进行3D频域电磁数据建模的终极指南
    二叉树链式结构基础
    Golang 切片删除指定元素的几种方法
    .NET异步编程模式(二)
    利用百分位点函数ppf计算置信区间上下限
    10分钟Apache Kylin快速入门
    免费获取独立ChatGPT账户!!
    【AUTOSAR-CAN-1】DataBase for Can——深入理解 DBC 通信矩阵
  • 原文地址:https://blog.csdn.net/lrs998563/article/details/126068697