• Tomcat+nginx负载均衡和动静分离


    Nginx实现负载均衡和动静分离的原理

    Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但是不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。据了解,Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

    Nginx实现负载均衡的主要配置项 

    upstream 服务池名 {   }
    作用:配置后端服务器池,以提供响应数据

    proxy_pass http:// 服务池名
    作用:配置将访问请求转发给后端服务器池的服务器处理

    实验要求:

    五台服务器分别部署

    1.nginx代理服务器  20.0.0.10

    2.静态页面和动态页面请求转发服务器

    20.0.0.20 20.0.0.30

    3.tomcat1  20.0.0.40

       tomcat2  20.0.0.50

    部署代理主机

    1. stream {
    2. upstream static {
    3. server 20.0.0.20:80 weight=1;
    4. server 20.0.0.30:80 weight=1;
    5. }
    6. server {
    7. listen 80;
    8. proxy_pass static;
    9. }
    10. }
    11. wq!
    12. systemctl restart nginx
    13. nginx2配置
    14. vim nginx.conf
    15. upstream tomcat {
    16. server 20.0.0.40:8080 weight=1;
    17. server 20.0.0.50:8080 weight=1;
    18. }
    19. location ~* \.jsp$ {
    20. proxy_pass http://tomcat;
    21. proxy_set_header HOST $host;
    22. proxy_set_header X-Real IP $remote_addr;
    23. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    24. #nginx作为代理服务器时,会把所有经过的机器的IP以及代理地址的IP全部记录下来
    25. }
    26. nginx3配置:
    27. vim nginx.conf
    28. upstream tomcat {
    29. server 20.0.0.40:8080 weight=1;
    30. server 20.0.0.50:8080 weight=1;
    31. }
    32. location ~* \.jsp$ {
    33. proxy_pass http://tomcat;
    34. proxy_set_header HOST $host;
    35. proxy_set_header X-Real IP $remote_addr;
    36. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    37. #nginx作为代理服务器时,会把所有经过的机器的IP以及代理地址的IP全部记录下来
    38. }

    tomcat主要配置

    1. mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test
    2. vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
    3. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    4. <html>
    5. <head>
    6. <title>JSP test2 page</title> #指定为 test2 页面
    7. </head>
    8. <body>
    9. <% out.println("动态页面 2,http://www.test2.com");%>
    10. </body>
    11. </html>
    12. vim /usr/local/tomcat/tomcat1/conf/server.xml
    13. #删除前面的 HOST 配置
    14. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    15. <Context docBase="/usr/local/tomcat/tomcat1/webapps/test" path="" reloadable="true" />
    16. </Host>
    17. /usr/local/tomcat/tomcat1/bin/shutdown.sh
    18. /usr/local/tomcat/tomcat1/bin/startup.sh

  • 相关阅读:
    第151篇 Solidity Example(1)
    YOLOV1详解——Pytorch版
    (19)Verilog实现信号延迟N拍【8拍】
    python--数据容器--set(集合)
    Java之set集合的详细解析
    Java快问快答
    QT5自定义下拉框为QTreeView类型(树形分上下级)的下拉框(QComboBox)(超详细步骤)
    OSEK network management
    vue 兄弟组件通信, provide/inject,
    JAVA编程题-求矩阵螺旋值
  • 原文地址:https://blog.csdn.net/qq_51506982/article/details/133990183