Nginx+Tomcat负载均衡、动静分离群集

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Nginx+Tomcat负载均衡、动静分离群集

两台Tomcat配置

1:实施准备

关闭防火墙

[root@localhost ~]# systemctl stop firewalld

 

2:查看JDK是否安装

[root@localhost ~]# java -version

openjdk version "1.8.0_102"

OpenJDK Runtime Environment (build 1.8.0_102-b14)

OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

 

3:安装配置Tomcat

[root@localhost ~]# tar zxvf apache-tomcat-8.5.30.tar.gz

[root@localhost ~]# mv apache-tomcat-8.5.30 /usr/local/tomcat8

[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh

[root@localhost ~]# netstat -anpt | grep 8080

tcp6       0      0 :::8080                 :::*                    LISTEN      45388/java  

 

浏览器测试Tomcat网站:127.0.0.1:8080

image.png


 

7:建立java的web站点

(1)建立web目录

[root@localhost ~]# mkdir -p /web/webapp1

 

(2)建立java测试页面

[root@localhost ~]# vi /web/webapp1/index.jsp

test web

 

(3)修改server.xml文件

[root@localhost ~]# vi /usr/local/tomcat8/conf/server.xml

在148--151行

<Host name="localhost"  appBase="webapps"

           unpackWARs="true" autoDeploy="true">

       <Context docBase="/web/webapp1" path="" reloadable="true">

       </Context>

(4)重启tomcat服务

[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh

[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh

 

(5)访问网站测试

http://127.0.0.1:8080


nginx部分

[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel


[root@localhost ~]# groupadd www


[root@localhost ~]# useradd -g www www -s /bin/false [root@localhost ~]# tar xf nginx-1.12.0.tar.gz [root@localhost ~]# cd nginx-1.12.0 [root@localhost nginx-1.12.0]#

./configure --prefix=/usr/local/nginx --user=www -- group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_mo dule --with-http_flv_module


注释:

//--user=,--group= 指定运行的用户和组 //--with-file-aio 启用文件修改支持 //--with-http_stub_status_module 启用状态统计 //--with-http_gzip_static_module 启用 gzip 静态压缩 //--with-http_flv_module 启用 flv 模块,提供寻求内存使用基于时间的偏移量文件 //--with-http_ssl_module 启用 SSL 模块


[root@localhost nginx-1.12.0]# make && make install



编写脚本实现Nginx服务启动、停止、重载等操作

vim /etc/init.d/nginx

添加以下内容:


#!/bin/bash

# chkconfig: - 99 20

# description: Nginx Server Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

start)

  $PROG

 ;;

stop)

 kill -s QUIT $(cat $PIDF)

 ;;

restart)

 $0 stop

 $0 start

 ;;

reload)

 kill -s HUP $(cat $PIDF)

 ;;

status)

 [ -f $PID ] &> /dev/null

      if [ $? -eq 0 ]

         then

         netstat  -anpt | grep nginx

      else

         echo "Nginx is not running."

       fi

 ;;

*)

 echo "Usage: $0 {start|stop|restart|reload|status}"

esac

exit 0


为脚本添加执行权限

chmod +x /etc/init.d/nginx

添加nginx为系统服务

chkconfig --add nginx

启动nginx服务

systemctl start nginx


[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

添加红色部分内容


#user  nobody;

worker_processes  1;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

 

events {

   worker_connections  1024;

}

 

 

http {

   include       mime.types;

   default_type  application/octet-stream;

   #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  logs/access.log  main;

 

   sendfile        on;

   #tcp_nopush     on;

 

   #keepalive_timeout  0;

   keepalive_timeout  65;

 

   #gzip  on;

   #

 

       upstream tomcat_server {

       server 192.168.1.10:80 weight=1;

       server 192.168.1.11:80 weight=1;

       }

 

   server {

       listen       80;

       server_name  localhost;

       #charset koi8-r;

 

       #access_log  logs/host.access.log  main;

 

       location ~ .*.jsp$ {

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Client-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://tomcat_server;

}

 

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {

root /usr/local/nginx/html/img;

expires 30d;

}

 


下面是编辑 Nginx 静态页面文件

[root@localhost ~]# vim /usr/local/nginx/html/index.html


<!DOCTYPE html>

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8">

<title>静态页面</title>

<style>

body {

width: 35em;

margin: 0 auto;

font-family: Tahoma, Verdana, Arial, sans-serif;

}

</style>

</head>

<body>

<h1>静态页面</h1>

<p>这是个静态页面</p>

<img src="2.jpg"width="300"height="300">

</body>

</html>


[root@nginx ~]# mkdir /usr/local/nginx/html/img   #创建静态文件目录

[root@nginx ~]#cp /root/logo.jpg /usr/local/nginx/html/img

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t   #测试配置文件

[root@localhost ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf   #启动nginx


查看 Nginx 服务进程

[root@localhost ~]# ps aux | grep nginx

root 13304 0.0 0.0 20492 624 ? Ss 17:59 0:00 nginx: master proc

ess /usr/local/nginx/sbin/nginx -c /usr/local/nginx/confnginx.conf

www 13305 0.0 0.1 20940 1348 ? S 17:59 0:00 nginx: worker proc

ess

root 13311 0.0 0.0 112664 972 pts/0 S+ 17:59 0:00 grep --color=auto

nginx 查看端口号及 PID 进程号。

[root@localhost ~]# netstat -anpt | grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13304/nginx: master


测试静态网页

http://192.168.1.12

测试负载均衡

http://192.168.1.12/index.jsp


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
6月前
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
85 3
|
1月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
63 3
|
2月前
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
49 1
|
7月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
140 2
|
7月前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
3月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
67 3
|
5月前
|
前端开发 Java 应用服务中间件
在Linux中,tomcat和nginx的区别是什么?
在Linux中,tomcat和nginx的区别是什么?
|
5月前
|
缓存 负载均衡 Java
Tomcat多实例及nginx反向代理tomcat
运行多个Tomcat实例并使用nginx作为反向代理
95 3
|
6月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
188 1
|
6月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
118 1