Nginx的学习

Updated on with 0 views and 0 comments

Nginx的学习

Nginx

Nginx介绍

  1. 是一种服务器 由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的
  2. 提供的服务:反向代理服务、负载均衡服务、web服务(动静分离)、虚拟主机服务、邮件服务
  3. 特点:轻量级、高性能、高并发、内存占用少/低耗、高稳定性、简单配置(5万并发 250个 Tomcat 的并发顶上一个 Nginx)

Nginx下载和安装

官网:nginx.org

使用源码安装方式 安装目录好控制

进入finalshell 进入 cd /usr/app

使用 wget 下载

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

安装依赖

#安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

解压解包

#解压解包
tar -zvxf nginx-1.20.1.tar.gz

配置文件

#切换路径 
cd nginx-1.20.1
#执行配置
#先进入nginx的目录
#执行
./configure --prefix=/usr/app/software/nginx

安装 nginx

#安装nginx
#执行 make
make PREFIX=/usr/app/software/nginx install

启动 nginx

#启动
#进入/usr/app/software/nginx/sbin
./nginx

测试

#测试:
curl http://localhost/
#防火墙放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重启防火墙
systemctl restart firewalld.service

本地测试

image-20210727145836599

Nginx使用

html 目录 下是 web项目空间

重启:./nginx -s reload

  1. 反向代理服务器

    1)使用 Nginx 可以用于实现反向代理服务器,即 Nginx 实现反向代理功能

    2)反向代理?(翻墙 正向代理 代替客户端浏览器)

    由一方代替另一方实现功能;其中代替者和被代替者均为服务器;由一方服务器代替另一方服务器对外提供服务;

    image-20210727154234639

    3)实现反向代理操作

    A、搭建 Tomcat 集群(伪集群【一个电脑多个 Tomcat】真集群【一个电脑一个 Tomcat】)

    复制多个 tomcat

    mkdir tomcats
    cp -r tomcat/ tomcats
    cd tomcats
    mv toncat/ tomcat1
    cp -r tomcat1/ tomcat2
    cp -r tomcat1/ tomcat3
    

    同时启动 需要先改端口

    EditPlus 远程连接 编辑修改

    添加 ftp 账号 ip 用户名 密码

    高级选项修改端口 22 使用 sftp

    image-20210727155904358

    修改完成 Tomcat 端口

    B、实现反向代理配置

    在修改 Nginx 配置

image-20210727162146993


./nginx -s reload 重启 Nginx 浏览页面 进入的 Nginx 服务器 返回的 未知的 Tomcat 集群服务器 中的一个


默认的顺序配置的顺序: 轮流响应处理

  1. 负载均衡

    1)什么是负载均衡:

    是指集群中处理请求,实现响应工作,应该实现一种均匀分配,即使集群中每个成员都有工作处理

    2)如何实现负载均衡

    A、采用不同的负载均衡策略实现

    B、有哪些策略:Nginx 有默认策略 -- 轮询、最少连接、权重、ip_hash 四种策略

    C、轮询策略:简而言之即按照集群配置,轮流实现工作

    upstream 名称 {
    server 192.168.159.128:8081;
    server 192.168.159.128:8082;
    server 192.168.159.128:8083;
    }
    

    D、权重:比值设置:加入 weight = 值 ,默认为1,值越高 处理请求越多 长期来看,一段时间之后权重才可以体现

    E、最少连接:当前处理请求最少的成员,把新的请求交给他处理 加入 least_conn;

    F、ip_hash:是指当客户端向后台发送请求的时候,客户端的 ip 会送到后台去,后台的 Nginx 会获取到 ip,然后对 ip 进行 hash 值计算,在根据计算得到的 hash 值 找集群中某个成员处理请求和实现响应;此种配置策略有一个特点即:同一个客户的所有请求都是由同一个Tomcat 处理的。Session不同了 不能实现会话跟踪。ip_hash

  2. 动静分离:静态资源不需要重复、不经过 Tomcat

    1)在项目中有些资源(静态资源 -- js、css、html、图片、音频、视频、动画)是不需要 Tomcat 服务器就可以被直接访问的,那么为了减少 Tomcat 服务器空间的浪费(集群中每个成员都有同一份静态资源 - 浪费空间),那么把每个成员中静态资源从 Tomcat 中分离出去(Tomcat 只剩下动态资源),分离出去的静态资源,当客户请求的时候(客户还能够正常请求),中间者 Nginx 起作用,负责把静态资源给客户响应回去,所以从此点功能上来说,Nginx 也能实现响应(响应的是静态资源),把 Nginx 也能看做是 web 服务器(实现 web 功能)

    location ~ \.(html|css|js|gif|jpg|jpeg|png|bmp|swf)$ {
        root /usr/app/software/nginx/html;
    }
    location ~ \.(jsp|do|action)$ {
        proxy_pass http://名称;
    }
    

标题:Nginx的学习
作者:HB2Ocean
地址:http://future-hb.top:8080/articles/2021/07/27/1627401240250.html