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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
4月前
|
存储 安全 应用服务中间件
将下载的Nginx证书转换为Tomcat证书格式
好,可以看到,将Nginx证书转换为Tomcat证书的过程就像在烘焙一块蛋糕。你需要准备材料(证书),配备工具(OpenSSL, keytool),按照一定的步骤慎重制作,最后你就拥有了一块可以在浏览器中呈现出漂亮的安全状态的HTTPS蛋糕。就这么简单,明了,没有任何复杂的理论知识,就像在家庭厨房里烘焙的快乐一样。
199 16
|
4月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
149 21
|
4月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
125 14
|
4月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
171 11
|
9月前
|
缓存 Java 应用服务中间件
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
340 11
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
237 2
|
9月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
595 3
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
306 1
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
1556 2
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了&quot;http://&quot;。修正方法是删除上游服务器列表和proxy_pass中的&quot;http://&quot;。问题解决后,Nginx服务应能正常启动。
916 4
解决nginx配置负载均衡时invalid host in upstream报错