實現haproxy+LNMT負載均衡架構

一、架構

主機 IP1 IP2 作用
haproxy 172.17.17.173 192.168.17.173 負載均衡nginx:80
nginx1 192.168.17.174 負載均衡tomcat:8080
nginx2 192.168.17.175 負載均衡tomcat:8080
tomcat1 192.168.17.174 提供web服務
tomcat2 192.168.17.175 提供web服務
mysql 192.168.16.173 提供mysql服務

二、haproxy——>nginx(1,2)

1.haproxy配置文件

vim   /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2
    nbproc      1
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
frontend static
        mode http 
        bind 172.17.17.173:80
        default_backend server_nginx
backend server_nginx
        balance     roundrobin
        option  httpchk  GET /index.jsp
        server  static_175  192.168.17.175:6000 check inter 2000 rise 3 fall 5
        server  static_174  192.168.17.174:6000 check inter 2000 rise 3 fall 5
listen stats 
        mode http 
        bind 192.168.17.173:1900 
        stats enable 
        stats hide-version 
        stats uri /haproxy?111 
        stats realm Haproxy\ Statistics 
        stats auth admin:admin
        stats admin if TRUE 

三、nginx(1,2)——tomcat(1,2)

1.nginx負載tomcat

使用upstream&proxy_pass 匹配location進行負載均衡

vim   /etc/nginx/nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

/usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;

upstream  web_tomcat{
server 192.168.17.174:8080 weight=5;
server 192.168.17.175:8080 weight=10;
}
    server {
        listen       192.168.17.174:80 default_server;
        server_name  _;
        index index.jsp index.html;
        # Load configuration files for the default server block.

        location / {
        proxy_pass http://web_tomcat;
        }

        location ~*.(jsp|do) {
        index index.jsp index.do;
        proxy_pass http://web_tomcat;
        }
    }
}

四、部署tomcat

1.安裝jdk

yum install java-1.8.0-openjdk

2.安裝tomcat

tomcat使用yum安裝還需要安裝admin、manager等包,所以直接使用二進制安裝
tomcat二進制安裝鏈接密碼:ktlx

3.定義java、jre、等變量

vim     /etc/profile.d/java.sh 

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/
    export JRE_HOME=$JAVA_HOME/jre
    export CATAlINA_BASE=/usr/local/tomcat
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$CATAlINA_BASE/bin:$PATH

4.啓動tomcat

source /etc/profile.d/java.sh 
cacatalina.sh start

五、部署mariadb-server

數據庫安裝,與數據庫之間的鏈接需要java代碼實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章