Nginx+Tomcat搭建高性能负载均衡集群

原文链接
本来说这一篇文章就足够用了,但是因为我们实际的代码是前后端分离了。我们的是单页面应用。所以说还有有一点点的不一样的。我们一般的配置是模型如下图所示:
Nginx+Tomcat搭建高性能负载均衡集群
文章图片
但是我们实际情况是这样的:


Nginx+Tomcat搭建高性能负载均衡集群
文章图片
首先我们准备了两台服务器
服务器一:主服务器,服务器二:次服务器
第一步当然是安装环境了jvm+tomcat+ngnix环境。两台服务器都安装好ngnix和tomcat,具体就不描述如何安装所需环境了下面我给出原文地址
在linux系统下安装ngnix

第二步我们在服务一中的tomcat中部署后台代码并运行,服务器一中的ngnix配置运行前端静态页面代码
单页面应用ngnix配置说明:

server {
#端口号
listen5000;
#访问域名
server_namelocalhost;
#charset koi8-r;
#access_loglogs/host.access.logmain;
#静态页面地址
root /usr/local/nginx/html/salary_h5/dist;
#配置入口页面
index index.html index.htm;
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
# access_log logs/static.log; # I don't usually include a static log
}
#配置js,css
location ~* \.(?:css|js)$ {
try_files $uri =404;
access_log off;
}
# Any route containing a file extension (e.g. /devicesfile.js)
location ~ ^.+\..+$ {
try_files $uri =404;
}
# Any route that doesn't have a file extension (e.g. /devices)
#解决单页面应用刷新问题

location / {
try_files $uri $uri/ /index.html;
}
error_page500 502 503 504/50x.html;
location = /50x.html {
roothtml;
}
}
第三步我们在服务器二中的tomcat部署运行后台代码,服务器二中的ngnix配置后台分流
服务器分流配置
#usernobody;

#工作进程的个数,一般与计算机的cpu核数一致
worker_processes1;
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events {
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections1024;
}
http {
#文件扩展名与文件类型映射表
includemime.types;
#默认文件类型
default_typeapplication/octet-stream;
#log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" "$http_x_forwarded_for"';
#access_loglogs/access.logmain;
【Nginx+Tomcat搭建高性能负载均衡集群】#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
sendfileon;
#tcp_nopushon;
#keepalive_timeout0;
#长连接超时时间,单位是秒
keepalive_timeout65;
#启用Gizp压缩
#gzipon;
#==================================================================================
#服务器集群 a.server.com; 为集群服务器名
upstream a.server.com; {
#服务器1 weight是权重的意思,权重越大,分配的概率越大。
server 服务器:端口 weight=2;
#服务器2
server 服务器2:端口号 weight=1;
}
server {
#端口号
listen8888;
#访问域名
server_name提供给前端使用的域名
location / {
#交给名字为infud.server.com的集群去处理
proxy_pass http://a.server.com;
proxy_redirect default;
}
#=====================================================================================
第四步,将服务器二中ngnix配置分流后的ip地址提供前端调用。这样就能实现分流了。

    推荐阅读