zoukankan      html  css  js  c++  java
  • Nginx系列3之Nginx+tomcat

    preface

    公司部分应用跑得的tomcat,众所周知,tcomat高并发性能很弱,所以在处理静态请求的时候,我们就把他抛给Nginx处理,而Tomcat专门处理动态请求。所以在这里说说Nginx+tomcat的结合方式。

    Nginx和Tomcat结合方式

    1. 将所有静态页面交给nginx,动态请求交给后端tomcat处理。
    2. 将所有请求交给后端tomcat服务器处理,只是利用Nginx自身的负载均衡功能进行多台tomcat服务器调度流量
    动静分离

    我们假设127.0.0.1:8080是tomcat。
    那么nginx配置文件如下:

    server {
    
        listen       80;
        server_name  web1.test.com;
        charset utf8;
        access_log  /var/log/nginx/access.log  main;
    
        location / {
            root   /var/www/html;
            index  index.html index.htm;
        }
    
        location /img/ {
            root   /var/www/html/img;
            index  index.html index.htm;
        }
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
        location ~ .(php|do)$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect off;
            proxy_set_header HOST $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 90;
            proxy_send_timeout 90;
            proxy_read_timeout 90;
            proxy_buffer_size 16k;
            proxy_buffers 4 32k;
            proxy_busy_buffers_size 128k;
            proxy_temp_file_write_size 64k;
        }
    }
    

    在上面的实例中,首先定义了一个虚拟主机的servername ( web1.test.com),然后凡是首页的和、img下面的都给nginx完成,而所有jsp,do结尾的交给tomcat处理。
    需要注意的是,在location指令中使用正则表达式后,proxy_pass后面的代理路径不能包含地址连接,也就是不能写成http://192.168.12.130:8080 ,或者类似http://192.168.12.130:8080/jsp的形式,在location指令不使用正则表达式时,没有此限制。

    对Tomcat负载均衡

    Nginx负载均衡配置:

    upstream mytomcats {
        server 192.168.12.131:8080;
        server 192.168.12.132:8080;
        server 192.168.12.133:8080;
    }
    server {
        listen 80;
        server_name www.baidu.com;
    }
    location ~* .(jpg|gif|png|flv|swf|wma|wmv|asf)$ {
        root /web/www/html;
    }
    
    location / {
        proxy_pass http://mytomcats;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        proxy_buffer_size 4k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
    }
    

    定义了一个upstream负载均衡组,组名为mytomcats,组的成员就是指定的192.168.12.131-192.168.12.133,通过location指令以正则表达式的方式将指定类型的文件全部交给Nginx去处理。其他的所有交给tomcat处理。

  • 相关阅读:
    2020年寒假假期总结0210
    2020年寒假假期总结0209
    2020年寒假假期总结0208
    2020年寒假假期总结0207
    2020年寒假假期总结0206
    yolo-v4:Optimal Speed and Accuracy of Object Detection解析
    Docker 练习
    tensorflow2.0 GPU版本镜像文件
    flink项目实战
    高等数理统计知识点
  • 原文地址:https://www.cnblogs.com/liaojiafa/p/6046329.html
Copyright © 2011-2022 走看看