Nginx及配合Tomcat的简单使用

  • 简介(是什么)
    • 高性能的HTTP和反向代理服务器
    • 占用内存少,并发能力强
    • 不支持动态资源
    • 支持热部署,能够不关闭服务进行升级
    • 和Tomcat的区别
      • Tomcat同时支持动态和静态资源,是Servlet容器、Web容器、应用服务器
      • Nginx是代理服务器,支持反向代理和正向代理
      • 他们都是Web服务器和Http服务器(Web服务器一定是Http服务器)
  • 功能(做什么)
    • 正向代理
      • 简单理解就是梯子,中间。通常是为了获取正常网络访问不了的资源,需要在客户端进行手动配置

      • 客户端将请求发给代理服务器B,让其帮忙进行请求
      • 客户端能感知到代理服务器的存在
    • 反向代理
      • 客户端直接输入网址进行请求,反向代理服务器选择真实服务器获取数据后,将数据返回给客户端。

      • 客户端感知不到代理服务器的存在,在其看来反向代理服务器就是真实服务器
      • 隐藏真实服务器的IP地址、端口等信息。
    • 负载均衡
      • 将原先集中在单个服务器上的请求分发到多个服务器上,即负载分发到不同的服务器上, 就是负载均衡

    • 动静分离
      • 将动态页面和静态页面交给不同的服务器进行处理,加快解析速度,即动静分离

    • 高并发可用集群
  • 原理(怎么做)
    • 结构
      • Nginx有两钟进程,分别为master(一个)、worker(多个)
      • worker的数量和CPU数量相等最为合适
    • 工作方式
      • 客户端发送的请求先到master进程中,master通知woker抢占该请求。获得请求的worker将请求分发到对应的服务器

      • worker的连接数
        • 当访问静态资源时,一个请求占用两个连接数
        • 当访问动态资源时,一个请求占用四个连接数

        • 静态资源可以部署在Nginx上,不需要再访问动态资源服务器;而动态资源一定要访问动态资源服务器
        • 补充:最大并发数计算方法
          • worker支持最大连接数 乘以 woker数/4 —worker支持最大连接数*woker数/2
    • 设计的好处
      • 可以进行热部署
        • 有工作的worker不动,其他worker进行更新
      • worker独立进程
        • 不用加锁
        • 一个进程退出不影响其他进程,服务不会中断
        • 当前worker异常,不影响其他worker,降低风险
  • 使用(实操,配合Tomcat)
    • 安装
      • Linux:apt-get install nginx
      • 默认安装目录在 /etc/nginx,默认端口为80,可以在配置文件中修改
      • 正常安装后在浏览器输入IP:80,出现页面(记得开放防火墙端口)

    • 配置文件
      • 位置
        • 依据下面的信息可知配置文件放在/etc/nginx/nginx.conf

      • 结构
        • 全局块
          • 配置服务器的运行,可以设置worker的数量
        • events块
          • 配置服务器与用户的网络连接,可以设置每个worker的连接数
          • event块的配置对性能的影响较大
        • http块(最主要)
          • http全局块
            • 文件引入
            • MIME-TYPE定义
            • 日志自定义
            • 连接超时时间
            • 单链请求上限
          • http server块
            • 每个server块相当于一个虚拟主机,又可分为全局server块和location块
            • 全局server
              • 监听配置
              • 主机名字或者IP
            • location
              • 地址定向
    • 配置反向代理
      • 配置文件中只需要修改server部分
      • 只配置一个服务器
        • 配置监听端口

        • 配置服务名称

        • 若不能出现图片和css,则加入以下配置。try_files部分可以不要

      • 配置多个服务器
        • 配置新的Tomcat服务器
          • 1、调整新的Tomcat服务器端口,运行端口和关闭端口都需要和已经存在的不同
          • 2、向webapps中添加新的app
            • 比如新建名为tomcat2的app,向其中加入test.html
        • 配置nginx服务器
          • 如果不需要开新的端口,只是需要添加新的路径,则直接用location定位到新加入的app即可。注意这里的名称和新加的app名称要一样

          • 如果需要运行在新的端口,则和配置一个服务器一样,要先配置端口、服务名称,然后添加上述location
      • 总结
        • 配置不同的服务器就是添加不同的location,唯一需要注意的是添加的location位置需要和app的名字一样
        • 关于location处符号的说明

    • 配置负载均衡
      • 在两台Tomcat服务器中添加同名app,例如test。可以编写不同的内容以作区分
      • 在http块中添加

      • 在server块中添加

      • 在浏览器多次访问test,应出现不同的内容
      • 分发策略
        • 轮询(默认)
          • 按照请求的时间顺序分配到不同的服务器。
          • 如果某一台服务器故障,会进行跳过
        • weight
          • 设置权重,权重越大的服务器被请求的概率越高

        • ip_hash
          • 每个ip地址依据hash结果,固定访问同一台服务器,除非高服务故障,否则不会访问新服务器
          • 用来姐绝session问题
          • 配置方式,在服务器前协写上ip_hash声明

        • fair
          • 按照服务器相应时间分配,响应时间短的先分配
          • 在服务器后写上fair声明

      • 总结
        • 设置upstream,将具有相同服务的服务器写到一组中
        • 设置location,将一组相同服务的服务器同时进行反代
    • 反向代理和负载均衡的区别
      • 反向代理是一个server,多个location(不同服务器跑不同服务)
      • 负载均衡是多个server,一个location(不同服务器跑相同服务)
    • 配置动静分离
      • 1、在服务器准备静态文件
        • image放图片,www放页面文件

      • 2、配置location
        • 注意location的名字和文件夹名字应该一样

        • root后面的路径为文件夹的绝对路径
        • nginx配置文件中,root指令表示Nginx服务器在响应请求时,要将文件目录映射到浏览器的URI上。当URI以斜杠结尾时,nginx会把请求
          路径和root路径合并,若root路径本身已经有一个结尾斜杠,则不会再次添加。因此,在对应root路径的指令后需要注意斜杠的处理。
          如果root路径末尾有斜杠,请求路径也以斜杠结尾,nginx会自动进行合并。如果root路径末尾没有斜杠,请求路径以斜杠结尾,nginx
          会将root路径作为目录,请求路径作为文件,导致文件不存在。
        • 参考:nginx中斜杠(‘/‘)总结_nginx location 斜杠-CSDN博客nginx 神奇的斜线,各种斜线的搭配访问结果_nginx 斜杠 302-CSDN博客
        • 当页面输入ip/image/1.jpg进行访问的时候。实际真实路径为:/home/linclo/data/image/1.jpg
      • 3、配置完静态资源,剩下的就全是动态了,上面的反代和均衡其实就是动态处理的方式
    • 配置高可用集群
      • 只有一台nginx不够保险,需要另外一个nginx服务器作为备用
      • 准备工作
        • nginx主服务器
        • nginx备份服务器
        • 虚拟ip
        • keepalived
      • (暂时用不到)
    • 命令
      • Linux查看后台运行端口netstat -tunlp|grep nginx
      • Linux查看运行程序ps -ef|grep nginx
      • nginx常用命令
      • 查看版本:nginx -v
      • 查看帮助:nginx -?或者nginx -h
      • 启动服务:nginx
      • 停止服务:nginx -s stop
      • 重新加载配置文件:nginx -s reload
  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NginxTomcat配合启动本地Web项目是一种常见的服务器架构配置。在此架构下,Nginx作为前端服务器,负责接收外部的请求,并将请求转发给Tomcat服务器进行处理,同时Nginx还可以进行负载均衡和反向代理等操作,从而提升Web应用的性能和安全性。 具体地,NginxTomcat配合启动流程如下: 1. 安装NginxTomcat 首先需要在服务器上安装NginxTomcat。安装方法参见相关文档和教程。 2. 配置Nginx Nginx的配置文件位于/etc/nginx/nginx.conf。打开该文件,在http节点下添加以下配置: ``` upstream tomcat { server 127.0.0.1:8080; } server { listen 80; server_name your_domain.com; # 替换为你的域名 location / { proxy_pass http://tomcat; } } ``` 这些配置的作用是: - upstream tomcat: 定义一个名为tomcat的upstream,表示Tomcat服务器的地址为127.0.0.1:8080。 - server: 定义一个server,监听80端口,并将域名your_domain.com指向该server。 - location /: 配置该server的根目录,将所有请求转发给upstream tomcat。 3. 配置Tomcat Tomcat的配置文件位于$CATALINA_HOME/conf/server.xml。打开该文件,在Connector节点中添加以下配置: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 这些配置的作用是: - port: 定义Tomcat的监听端口为8080。 - protocol: 定义使用HTTP/1.1协议进行通信。 - connectionTimeout: 定义连接超时时间为20000毫秒。 - redirectPort: 定义重定向端口为8443。 4. 启动NginxTomcat 保存好NginxTomcat的配置文件后,依次启动NginxTomcat,即可完成Web项目的启动。 总体来说,将NginxTomcat配合启动可以提高Web应用的性能和安全性,同时还可以进行负载均衡和反向代理等操作,是一种非常实用的服务器架构配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值