一、架构
主机 | 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代码实现