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

简介: 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


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
29 0
|
3月前
|
缓存 前端开发 JavaScript
tomcat核心技术+Nginx性能调优技术
而Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话
38 1
|
22天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
35 0
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
43 4
|
29天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
20 1
|
7天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
7天前
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
12天前
|
负载均衡 应用服务中间件 nginx
Nginx 负载均衡
Nginx 负载均衡
23 2
|
4月前
|
负载均衡 应用服务中间件 nginx
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
35 0
|
4月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
49 1