• Linux系统--nginx的使用


    1.什么是nginx

     代理服务器--使用比较多的为nginx代理服务器。

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

    2.如何使用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中并解压  

    (3)创建一个目录作为nginx的安装目录

    mkdir /usr/nginx

    (4)进入nginx的解压目录

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

    (6) 编译--安装

    make
    make install ---安装 

    conf: 配置目录

    html: 放置静态资源的。

    logs: 日志

    sbin: 启动和关闭nginx的脚本

    (7)启动nginx 进入到你的nginx目录

    ./nginx 开启nginx

    ./nginx -s stop 关闭nginx

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

    (8) 访问nginx服务器

    原因:防火墙未关闭或者你的端口号未选择放行

     设置防火墙允许放行哪些端口号
    firewall-cmd --add-port=你的端口号/tcp --zone=public --permanent

    放行端口号后需要重启防火墙:

    systemctl restart firewalld

    查看哪些端口号被放行 


    firewall-cmd --list-port 

    关闭防火墙----慎重【关闭】 开启还会启动


    systemctl stop firewalld 

     关闭防火墙或者放行端口号之后就可以进行访问了

    3.nginx的配置文件

    进入/usr/nginx/conf,打开该目录下的nginx.conf文件:

            cd /usr/nginx/conf         -------进入nginx.conf文件所在目录

    使用vi打开该文件进行配置或使用Xftp调用本地软件打开:

            vi nginx.conf        --------使用vi打开nginx的配置文件

    3.1默认的配置信息

    (1)找到nginx.conf文件

    (2)查看nginx.conf文件里的配置信息

     

    (3) 访问nginx

    默认的index.html文件里的内容

     

    (4)修改 index.html文件的内容

    进入到html目录下 使用vi命令修改 index.html内容

    修改后的内容

     

    3.2自己创建配置文件信息

     (1)创建配置文件信息

    (2)创建my目录

    (4)创建my.html文件

    (5)传输到linux下

    (6)访问

    4.nginx三大核心

    反向代理:

    负载均衡:

    动静分离:

    4.1反向代理

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

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

    如何使用nginx完成反向代理

    准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.---springboot项目

    (1)打包项目

    (2)上传到linux系统下

    (3) 启动真实项目

    java -jar xxxx.jar

    (4)修改nginx配置文件

    (5)重新加载nginx

    ./nginx -s reload

    (6)访问项目

    ps:如果所有都配置完成无法进入指定页面,则需放行项目端口,我这里项目端口号是8081,然后重新加载防火墙;或者直接关闭防火墙,但关闭请慎重 

    4.2负载均衡

    用于搭建项目集群,在实际开发中我们会有多个服务器,这时我们要把项目部署在每一个服务器上,负载均衡减轻单台服务器压力,保证每台服务器的高效率及高可用

    (1)开启两台服务器

    (2)修改nginx配置文件

    (3)重新加载配置文件

    cd /usr/nginx/sbin

    ./nginx -s reload

    (4)测试

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

     nginx负载均衡的策略:

    默认负载均衡的策略为轮询策略。

    1)、轮询(默认)

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

     

    2)、weight

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

     

    3)、ip_hash

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

     

    4)、fair(第三方)

      按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    5)、url_hash(第三方)

    4.3动静分离

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

     

    (1)为什么使用动静分离

      

     

    (2)如何使用nginx搭建动静分离

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

    配置了一个server:

     

    (3)把项目中的静态资源放入nginx安装路径下,删除项目中的静态资源 

     

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

    5.nginx的高可用

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

     

     

    (1)准备条件

    1.192.168.19.151---- master主节点
    2.192.168.18.152---->backup从节点

    (2)检查

    两台linux是否可以正常启动nginx

    两台linux都安装keepalived 

    yum -y install keepalived  安装keepalived
    rpm -q -a keepalived 查看本地是否安装keepalived

    (3)默认keepalived的配置文件在    /etc/keepalived下 

    (4)把启动脚本放入指定目录 /usr/local/src/        文件名为nginx_check.sh

    注意:使用killall命令需要先下载

    yum install psmisc   

    (5)启动nginx和keepalived

    ./nginx 
    systemctl start keepalived

    (6)访问

    测试从代理服务器 有没有起到作用

    主nginx的nginx关闭:

    (7)测试从代理服务器 有没有起到作用

    主nginx的nginx关闭:

    nginx -s stop
    systemctl stop keepalived

     注意

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

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

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

  • 相关阅读:
    C#面向对象简介
    基于yolov5模型的目标检测蒸馏(LD+KD)
    RabbitMQ入门与进阶实战
    面向mMTC的5G网络多随机接入机制性能优化策略
    疫情可视化part2
    NFT遇冷,盘点6 大项目
    netcore Polly.Core
    Unity数字孪生UI设计——导入视频
    hahahaha发到这里吧
    C++ 多态与虚拟:Class 语法语义
  • 原文地址:https://blog.csdn.net/Ysuhang/article/details/126069697