Nginx+Tomcat 负载均衡配置
一、问题引入:
# 下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u79-linux-x64.tar.gz
# 备注:这个电商项目只支持jdk1.7版本,更高版本不支持
[root@localhost data]# tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/local/
# 然后配置环境变量,这样可以任何地方引用jdk,如下配置:
# vi /etc/profile 最后面加入以下语句:
export JAVA_HOME=/usr/local/jdk1.7.0_79/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
# source /etc/profile #使环境变量马上生效
# java --version #查看java版本
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.79-b14, mixed mode)
三、Nginx安装:
1、先要安装pcre
下载 nginx: wget http://nginx.org/download/nginx-1.16.0.tar.gz
下载 pcre: wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
[root@localhost pcre-8.43]# yum -y install gcc-c++ gcc cc* make zlib-devel openssl*
[root@localhost data]# tar -zxvf pcre-8.43.tar.gz
[root@localhost data]# cd pcre-8.43
[root@localhost pcre-8.43 ]# ./configure
[root@localhost pcre-8.43 ]# make && make install
[root@localhost data]# tar -zxvf nginx-1.16.0.tar.gz
[root@localhost data]# cd nginx-1.16.0
[root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@localhost nginx-1.16.0]# make && make install
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# /usr/local/nginx/sbin/nginx
# 平滑启动nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
四、安装Tomcat
1.
# 官方网站下载 /data/apache-tomcat-8.5.50.tar.gz 或者其他版本:
# cd /data
# tar -zxvf /data/apache-tomcat-8.5.50.tar.gz
# 这里是把两个 tomcat 放在同一台机器上面了,也可以直接放两台不一样的机器上面,解压完成执行,同时拷贝两个tomcat,命名为tomcat1 tomcat2
# mv /data/apache-tomcat-8.5.50 /data/tomcat1
# cp /data/tomcat1 /data/tomcat2 -r
# 分别修改tomcat1和tomcat2 端口,这里有三个端口需要修改,分别如下:
shutdown 端口:8005 主要负责启动关闭.
ajp端口:8009 主要负责通过ajp均衡(常用于apache和tomcat整合)
http端口:8080 可以通过web页面直接访问(nginx+tomcata整合)
# 注* 如果tomcat1三个端口分别为:8005 8009 8080 ,那么tomcat2端口在此基础上都+1,即为:8006 8010 8081
# 一台服务器上,端口不能重复,否则会报错。
# 修改完端口后,然后启动两个tomcat,启动命令为:
# 如何提示没有这个文件或者权限不足,需要tomcat 的bin目录对sh文件赋予执行权限:chmod o+x *.sh
# /data/tomcat1/bin/startup.sh
# /data/tomcat2/bin/startup.sh
# 启动后,使用 netstat -tnl 可以看到6个端口,即代表tomcat1 tomcat2成功启动。
# 你可以使用http://ip:8080 http://ip:8081访问tomcat默认页面。
2.在/data/tomcat1/webapps/和/data/tomcat2/webapps/目录下分别建目录test
# mkdir -p /data/tomcat1/webapps/test
# mkdir -p /data/tomcat2/webapps/test
3.tomcat1发布目录test下内容:
# vim test.jsp # 输入如下内容
<html>
<body>
<h1>TOMCAT_1 JSP Test Page</h1>
<%=new java.util.Date()%>
</body>
</html>
4.tomcat2发布目录test下内容:
# vim test.jsp # 输入如下内容
<html>
<body>
<h1>TOMCAT_2 JSP Test Page</h1>
<%=new java.util.Date()%>
</body>
</html>
然后访问 http://ip:8080/test/test.jsp、 http://ip:8081/test/test.jsp 查看测试内容。
5、Nginx+Tomcat整合:
整合主要是修改nginx.conf配置,给一个完整的nginx.conf线上配置,部分参数可以自己根据实际需求修改:
worker_processes 8;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 102400;
events
{
use epoll;
worker_connections 102400;
}
http
{
include mime.types;
default_type application/octet-stream;
fastcgi_intercept_errors on;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time $remote_addr';
#添加下面需要转发的tomcat端口信息
upstream web_app {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
####chinaapp.sinaapp.com
server {
listen 80;
server_name chinaapp.sinaapp.com;
index index.jsp index.html index.htm;
#发布目录html
root html;
location /
{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://web_app;
expires 3d;
}
}
}
# 注* server段 proxy_pass定义的web_app需要跟upstream 里面定义的web_app一致,否则server找不到均衡。
# 如上配置 nginx+tomcat 反向代理负载均衡配置完毕
访问:http://ip(nginxip地址)/test/test.jsp
五、准备数据库
1、登录 mysql 数据建库
[root@localhost ~]# mysql -uroot -p123456
mysql> create database if not exists kyj default character set utf8;
# db_shop是数据库的名称
mysql> use kyj; # 切换到kyj数据库
mysql> set names utf8;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'db_shop'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# 创建用户名db_shop,密码为:123456,授权在任何的ip地址都可以登录
mysql>flush privileges; root用户也执行一下授权
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql>flush privileges;
mysql> exit;
Bye
2、连接数据库

在刚才创建的数据库上面,右键选择“运行sql文件”,选择sql文件

六、部署包到Tomcat下面

# cd /data/apache-tomcat-8.5.50/webapps
# rz //选择本地的包(app.tar.gz)
[root@localhost webapps]# tar -zxvf app.tar.gz
[root@localhost webapps]# vim app/WEB-INF/classes/application.properties jdbc.url=jdbc:mysql://127.0.0.1:3306/kyj?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456
[root@localhost webapps]# /data/apache-tomcat-8.5.50/bin/startup.sh &&tail -f /data/apache-tomcat-8.5.50/logs/catalina.out
接入到nginx:先配置一个
upstream web_app {
server 192.168.226.147:8080 weight=1 max_fails=2 fail_timeout=30s;
#server 192.168.226.128:8080 weight=2 max_fails=2 fail_timeout=30s; }

Nginx+Tomcat 负载均衡配置的更多相关文章
- Nginx + Tomcat 负载均衡配置详解
Nginx常用操作指南一.Nginx 与 Tomcat 安装.配置及优化1. 检查和安装依赖项 yum -y install gcc pcre pcre-devel zlib zlib-devel o ...
- Nginx+tomcat负载均衡配置
Nginx+tomcat是目前主流的java web架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下: 1.JAVA JDK ...
- centos6 Nginx+Tomcat负载均衡配置
一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...
- Linux记录-Nginx+Tomcat负载均衡配置
Nginx负载均衡配置及策略: 轮询(默认) 优点:实现简单缺点:不考虑每台服务器的处理能力配置示例如下:upstream www.xxx.com {# 需要负载的server列表server www ...
- windows环境下最简单的nginx + tomcat负载均衡配置示例
后端是两台tomcat服务器,我们简称为node1 和node2,访问地址分别是 http://192.168.1.2:8080 和 http://192.168.1.4:8080 前端使用nginx ...
- Linux下Nginx+Tomcat负载均衡和动静分离配置要点
本文使用的Linux发行版:CentOS6.7 下载地址:https://wiki.centos.org/Download 一.安装Nginx 下载源:wget http://nginx.org/pa ...
- nginx+tomcat负载均衡
最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...
- linux+nginx+tomcat负载均衡,实现session同步
linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...
- Nginx+Tomcat负载均衡、动静分离群集
Nginx+Tomcat负载均衡.动静分离群集 目录 Nginx+Tomcat负载均衡.动静分离群集 一.Tomcat 1. Tomcat简介 2. Tomcat重要目录 二.Nginx负载均衡原理 ...
- nginx四层负载均衡配置
nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 ...
随机推荐
- 【Direct3D 12】学习准备
学习资料 微软官方文档地址: https://docs.microsoft.com/en-us/windows/win32/direct3d12/direct3d-12-graphics 左下角可以根 ...
- 一步一步地完成题目——费解的开关(C/C++语言)递推、递归、顺序思维
前言 本文中博主将一步一步地.以正常人的顺序思维完成题目--费解的开关,使用的核心方法是递推与递归. 题目 参考题目:费解的开关 详细的题目信息相信大家都已经知道了,因此这里为了简洁只展示输入输出格式 ...
- SpringMVC学习笔记【狂神说】
1.MVC是什么 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑.数据.显示分离的方法来组织代码. MVC主要作用是降低了视图与 ...
- 解决CORS跨域问题
首先创建一个实现Filter的cors过滤器 import lombok.extern.slf4j.Slf4j; import org.springframework.context.Applicat ...
- Java异常之Error和Exception
异常Exception 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数 ...
- RabbitMQ的安装与基本使用(windows版)
基本结构 windows安装 1. 先安装erlang开发语言,然后安装rabbitmq-server服务器(需要比对rabbitmq版本和erlang版本对应下载安装,我项目中选用的版本为otp_ ...
- 02 python初识
Python初识 一.入门基础 1. 第一个Python程序 python 代码都是编写在以 .py 结尾的文件中.我们随便新建一个文件,并将文件后缀名改为 .py,在里面编写我们的第一个 pytho ...
- XXE漏洞初步练手
0x00:XXE定义 xml外部实体注入被我们称为XXE.因为实体可以通过预定义在文档中被调用,而实体的标识符又可以访问本地或者远程内容,当允许引用外部实体时,攻击者便可以构造恶意内容来达到攻击.
- Ubuntu下安装Node.js+ThreeJs
以具有sudo特权的用户身份运行以下命令,以下载并执行NodeSource安装脚本 curl -sL https://deb.nodesource.com/setup_16.x | sudo -E b ...
- flutter Slivers
一. Slivers 我们考虑一个这样的布局:一个滑动的视图中包括一个标题视图(HeaderView),一个列表视图(ListView),一个网格视图(GridView). 我们怎么可以让它们做到统一 ...