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

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月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


相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
打赏
0
0
0
0
70
分享
相关文章
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
90 4
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
108 5
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
353 9
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
Nginx的负载均衡
Nginx 是一款高性能的Web服务器与反向代理服务器,支持负载均衡功能,能有效提升系统性能与可靠性。其负载均衡策略包括基于轮询和权重的分配方法,以及IP哈希、最小连接数等算法,可根据实际需求灵活选择。
249 5
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
296 3
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
102 1
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
89 0

热门文章

最新文章