Nginx人门详解

发布于:2022-08-04 ⋅ 阅读:(310) ⋅ 点赞:(0)

1、Nginx简介

Nginx是一款轻量级的Web 服务器/反向代理服务器占有内存少,并发能力强官方测试nginx能够支撑5万并发链接,并且CPU、内存等资源消耗却非常低,运行非常稳定。

2. 使用场景

2.1. 高并发场景

  • 负载均衡(load Balance )
    • 在这里插入图片描述

    • 将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】

2.2. 正向代理

  • 代理人明确买家的目标是谁,代理人帮我们去联系目标

2.3. 反向代理

  • 客户只需要发送请求到代理服务器,代理服务器会将请求转发给内部的服务器去处理,处理完毕之后会将结果返回给客户
  • 但整个过程中客户和实际处理服务器是不会直接建立连接的
  • 在这里插入图片描述
    在这里插入图片描述

3、Nginx源码安装

4、 Nginx负载均衡

4.1. 集群搭建

4.2. 负载策略

  • 4.2.1. 请求轮询

    • 依次转发给配置的服务器
  • 4.2.2. 增加权重

    • 使用服务器权重,还可以进一步影响nginx负载均衡算法,谁的权重越大,分发到的请求就越多。
    • 说你行你就行不行也行
    • 在这里插入图片描述
  • 4.2.3. 最少连接数

    • 在连接负载最少的情况下,nginx会尽量避免将过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,避免服务器过载。
    • 在这里插入图片描述
  • 4.2.4. IpHash

    • 确保来自同一客户端的请求将始终定向到同一台服务器,除非此服务器不可用
    • 在这里插入图片描述

5. 资源静态化

5.1. 图床

  • 由外部服务器统一管理图片

5.2. 配置静态资源

6. 单Linux搭建多Tomcat

6.1. 拷贝多台

在这里插入图片描述

6.2. 环境变量

设置并执行 source /etc/profile

#tomcat8080
export CATALINA_HOME=/opt/bdp/apache-tomcat-8080
export CATALINA_BASE=/opt/bdp/apache-tomcat-8080
export TOMCAT_HOME=/opt/bdp/apache-tomcat-8080
#tomcat18080
export CATALINA_HOME18080=/opt/bdp/apache-tomcat-18080
export CATALINA_BASE18080=/opt/bdp/apache-tomcat-18080
export TOMCAT_HOME18080=/opt/bdp/apache-tomcat-18080

6.3. server.xml文件

vim apache-tomcat-18080/conf/server.xml

只需要修改tomcat18080即可,8080保持不变

#22--默认为8005--》修改为18005
<Server port="18005" shutdown="SHUTDOWN">  
#69--默认为8080--》修改为18080
<Connector port="18080" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
#116-默认为8009--》修改为18009
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" /> 

6.4. catalina.sh脚本

vim apache-tomcat-18080/bin/catalina.sh

只需要修改Tomcat18080即可,修改catalina.sh

####################113行开始添加
export CATALINA_BASE=$CATALINA_BASE18080
export CATALINA_HOME=$CATALINA_HOME18080
export TOMCAT_HOME=$TOMCAT_HOME18080

6.5. 启动Tomcat

./apache-tomcat-8080/bin/startup.sh
./apache-tomcat-18080/bin/startup.sh

7. 虚拟主机

虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成多台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功
能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样

分类

  • 1、基于域名的虚拟主机,通过域名来区分虚拟主机
  • 2、基于端口的虚拟主机,通过端口来区分虚拟主机

8. Session一致性

  • 节点分布
    在这里插入图片描述

  • 内存数据库

  • 安装数据库

    • yum install memcached -y
  • 开启数据库服务

  • systemctl status memcached
    systemctl start memcached
    systemctl enable memcached
    vim /etc/sysconfig/memcached
    
  • Tomcat

    • 拷贝jar包到当前服务器lib目录下

    • 要注意memcached的版本

    • 如果一个机器有多个tomcat都需要session一致

      • 配置tomcat/conf/server.xml
      • 相同项目如果想共享session,需要把jvmRoute命名一致
      • 如果你只有一个tomcat,忽略此步骤
      • <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm18080">
        </Engine>
        
    • 配置 tomcat/conf/context.xml

    • <Manager
        className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
        memcachedNodes="n1:192.168.88.100:11211"
        sticky="true"
        lockingMode="auto"
        sessionBackupAsync="false"
        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
        sessionBackupTimeout="1000"    
       transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoT
      ranscoderFactory" />
      
    • 重启Tomcat服务器

  • 访问发现同一个server是可以共享session的,但是不同server因为涉及到跨域的问题

    • session还是不-同的,需要设置cookie的domain
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到