NginxTomcat架构的动静分离和负载均衡

目录
一、的多实例部署
1.创建 kgc 和 benet 项目目录和文件
2.修改主配置文件
3.客户端浏览器访问验证
二、Nginx+负载均衡架构原理
2.1 Nginx负载均衡的主要配置
2.+负载均衡的优点
三、Nginx+负载均衡实验
1.部署Nginx 负载均衡器
2.部署2台 应用服务器
3.动静分离配置
1)配置
(2)配置
(3)Nginx配置
4.测试效果
一、的多实例部署
很多时候公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个服务,这样会消耗太多的系统资源 。此时,就需要使用到虚拟主机 。例如现在新增两个域名和,希望通过这两个域名访问到不同的项目内容 。
1.创建 kgc 和 benet 项目目录和文件
mkdir /usr/local/tomcat/webapps/kgcmkdir /usr/local/tomcat/webapps/benetecho "This is kgc page\!" > /usr/local/tomcat/webapps/kgc/index.jspecho "This is benet page\!" > /usr/local/tomcat/webapps/benet/index.jsp
2.修改主配置文件
vim /usr/local/tomcat/conf/server.xml--165行前--插入
3.客户端浏览器访问验证
echo "192.168.181.101" >> /etc/hosts
浏览器访问
二、Nginx+负载均衡架构原理
Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,服务器作为后端,web页面请求由Nginx服务来进行转发 。但是不是把所有的web请求转发,而是将静态页面请求Nginx服务由自己来处理,动态页面请求,转发给后端的服务器来处理 。是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台服务器 。并且并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配
2.1 Nginx负载均衡的主要配置
2.+负载均衡的优点三、Nginx+负载均衡实验
1.部署Nginx 负载均衡器
systemctl stop firewalldsetenforce 0##关闭防火墙、安全机制yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make##安装依赖环境useradd -M -s /sbin/nologin nginx##创建程序用户cd /opttar zxvf nginx-1.12.0.tar.gz -C /opt/##下载并解包cd nginx-1.12.0/./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-file-aio \#启用文件修改支持--with-http_stub_status_module \#启用状态统计--with-http_gzip_static_module \#启用 gzip静态压缩--with-http_flv_module \#启用 flv模块,提供对 flv 视频的伪流支持--with-http_ssl_module make -j3 && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/##创建软连接便于系统识别vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP $MAINPIDExecrStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target##创建服务chmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl enable nginx.service##赋权启动并开机自启
2.部署2台 应用服务器
##注意!! 这个时候需要切换到两台Tomcat服务器并重复以下操作systemctl stop firewalldsetenforce 0tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/vim /etc/profileexport JAVA_HOME=/usr/local/jdk1.8.0_91export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH##设置环境变量source /etc/profiletar zxvf apache-tomcat-8.5.16.tar.gzmv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh netstat -ntap | grep 8080
3.动静分离配置 1)配置
mkdir /usr/local/tomcat/webapps/testvim /usr/local/tomcat/webapps/test/index.jspJSP test2 page##设置动态页面测试页vim /usr/local/tomcat/conf/server.xml/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
【NginxTomcat架构的动静分离和负载均衡】(2)配置
mkdir /usr/local/tomcat/webapps/testvim /usr/local/tomcat/webapps/test/index.jspJSP test2 pagevim /usr/local/tomcat/conf/server.xml/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
(3)Nginx配置
#准备静态页面和静态图片echo '这是静态页面' > /usr/local/nginx/html/index.htmlmkdir /usr/local/nginx/html/imgcp /root/game.jpg /usr/local/nginx/html/imgvim /usr/local/nginx/conf/nginx.conf
http {......#gzip on;#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大upstream tomcat_server {server 192.168.181.101:8080 weight=1;server 192.168.181.102:8080 weight=1;}server {listen 80;server_name www.lbj.com;charset utf-8;#access_log logs/host.access.log main;#配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理location ~ .*\.jsp$ {proxy_pass http://tomcat_server;#设置后端的Web服务器可以获取远程客户端的真实IP#设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为proxy_pass指令设置的主机名proxy_set_header HOST $host;#把$remote_addr赋值给X-Real-IP,来获取源IPproxy_set_header X-Real-IP $remote_addr;#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#配置Nginx处理静态图片请求location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {root /usr/local/nginx/html/img;expires 10d;}location / {root html;index index.html index.htm;}......}......}
4.测试效果