Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验
实验拓扑图:

实验环境:
在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境。
实验过程中需要安装的工具包包括:vim unzip lrzsz lsof netstat bind gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel gd-devel
Tomcat WEB1:CentOS 7 192.168.81.51:8079
192.168.81.51:8080
Tomcat WEB2:CentOS 7 192.168.81.52:8079
192.168.81.52:8080
Nginx代理:CentOS 6.5 192.168.81.54
172.18.7.177
DNS服务器:CentOS 6.5 172.18.7.135
测试用客户机: 172.18.7.144
实验过程:
一、搭建Tomcat服务器
(提前下载apache-tomcat-7.0.47.tar.gz、jdk-8u20-linux-x64.rpm、Anynote_1.3.4.149.zip)
#systemctl stop firewalld \\关闭服务器防火墙
#setenforce 0 \\关闭selinux
#rpm -ivh jdk-8u20-linux-x64.rpm \\安装JAVA环境(这里选择1.8版本的JAVA)
#java –version

#tar -zxvf apache-tomcat-7.0.47.tar.gz –C /mnt
#mv /mnt/ apache-tomcat-7.0.47.tar.gz /opt/tomcat
#chmod +x /opt/tomcat \\设置目录可执行权限
#cp –ar /opt/tomcat /opt/tomcat2
#vim /opt/tomcat/conf/server.xml(修改三个端口号,在这里分别修改为8004,8008,8079)
shutdown 端口:8005 主要负责启动关闭.
ajp端口:8009 主要负责通过ajp均衡(常用于apache和tomcat整合)
http端口:8080 可以通过web页面直接访问(nginx+tomcata整合)
#/opt/ tomcat/bin/startup.sh
#/opt/ tomcat2/bin/startup.sh
#netstat –atnl(验证是否出现8008,8009,8079,8080,出现则为成功启动,这时可以通过在浏览器输入IP+端口访问Tomcat默认页面)

#yum –y install mariadb mariadb-server
#systemctl start mariadb
#mysqladmin –uroot –p(输入密码)
#mysql –u root –p
#unzip Anynote_1.3.4.149.zip
#mv Anynote_1.3.4.149/Anynote.war /opt/tomcat/webapps/
#cp /opt/tomcat/webapps/Anynote.war /opt/tomcat2/webapps/
#cd ANynote_1.3.4.149 /Anynote/database
MariaDB [(none)]> create database Sqlite;
MariaDB [(none)]> \q
#mysql -uroot -p Sqlite < zeyu.sql
#vim /opt/tomcat/webapps/Anynote/WEB-INF/jdbc.properties
#vim /opt/tomcat2/webapps/Anynote/WEB-INF/jdbc.properties(修改部分如下)

重启tomcat1和tomcat2
# /opt/tomcat/bin/shutdown.sh
# /opt/tomcat/bin/startup.sh
# /opt/tomcat2/bin/shutdown.sh
# /opt/tomcat2/bin/startup.sh
登录tomcat查看Anynote是否搭建成功

二、搭建Nginx代理服务器(提前下载nginx-1.6.3.tar.gz、Anynote_1.3.4.149.zip)
# groupadd -g 108 -r nginx
# useradd -u 108 -r -g 108 nginx
# id nginx \\ uid=108(nginx) gid=108(nginx) 组=108(nginx)
# tar zxvf nginx-1.6.3.tar.gz
# cd nginx-1.6.3
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module --with-http_image_filter_module --with-http_gzip_static_module
# make && make install
# /usr/local/nginx/sbin/nginx \\启动NGINX
# ps -ef |grep nginx

# vim /usr/local/nginx/conf/nginx.conf(修改配置文件实现负载均衡和动静分离)
upstream jsp_tomcat {
ip_hash;
server 192.168.81.51:8079 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.81.52:8079 weight=1 max_fails=2 fail_timeout=30s;
}
upstream jpg_tomcat {
ip_hash;
server 192.168.81.52:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.81.51:8080 weight=1 max_fails=2 fail_timeout=30s;
}
}

server {
listen 80;
server_name www.e-qianxi.com;
location / {
index index.html;
root /data/www/wugk;
}
location ~ .*\.(jsp|do)?$ {
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://jsp_tomcat;
}
location ~ .*\.( gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
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://jpg_tomcat;
}

# pkill nginx
# /usr/local/nginx/sbin/nginx \\重新启动nginx
# unzip Anynote_1.3.4.149.zip
# mv Anynote_1.3.4.149/Anynote/* /data/www/wugk/
访问代理IP测试(分别尝试访问了内网和外网的IP地址/Anynote/index.jsp)


三、DNS代理服务器配置
# yum -y install bind*
# vim /etc/named.conf


# vim /var/named/e-qianxi.com.zone

# vim /var/named/172.18.7.zone

# service named restart

四、配置两台Tomcat WEB的Mysql实现同步(双主复制)
修改两台服务器数据库的/etc/my.cnf文件
192.168.81.51:(server-id号不可以相同,replicate-do-db设置的是需要同步的数据库名称)

192.168.81.52:

# systemctl restart mariadb.service \\分别重新启动数据库
#mysql –uroot –p
192.168.81.51:
MariaDB [(none)]> grant replication slave on *.* to master@'192.168.81.52' identified by '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> show master status;(确认File和Position)
MariaDB [(none)]> stop slave;

MariaDB [(none)]> change master to
master_host='192.168.81.52',
master_user='master', \\用户的用户名
master_password='123', \\用户的密码
master_log_file='mysql-bin.000001', \\之前确认的File
master_log_pos=625; \\之前确认的Posision
192.168.81.52:
MariaDB [(none)]> grant replication slave on *.* to master@'192.168.81.51' identified by '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> show master status;
MariaDB [(none)]> change master to
master_host='192.168.81.51',
master_user='master',
master_password='123',
master_log_file='mysql-bin.000001',
master_log_pos=625;
分别开启slave
MariaDB [(none)]> start slave;
查看slave状态:show slave status\G;(出现双YES为配置正确)


五、登录测试用客户机,设置DNS服务器为172.18.7.135
使用客户机访问www.e-qianxi.com并添加任务

使用真机分别访问Tomcat的IP地址端口检测是否数据同步。


(在双主复制搭建之前添加的任务不会同步,在双主复制搭建之后添加的任务所有Tomcat都会有)
(在同一个tomcat服务器上的虽然端口8079的和8080不同,但是调用的是同一个数据库)
Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验的更多相关文章
- Nginx系列一:正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
转自https://www.cnblogs.com/leeSmall/p/9351343.html 仅供个人学习 一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器( ...
- Net分布式系统之二:CentOS系统搭建Nginx负载均衡
一.关于CentOS系统介绍 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat ...
- Nginx系列篇二:linux搭建Nginx负载均衡
建议先搭建好Nginx环境 可阅读--->Linux中搭建Nginx 1.准备好三台服务器[标配] 一.nginx负载均衡服务器:192.168.102.110,配置好Nginx 二.tomca ...
- docker 搭建 nginx负载均衡
本文描述如何在一台机器上搭建nginx负载均衡,我将会启动3个nginx的docker,分别是1台前置nginx负责分发,后面2台负责处理请求. 首先我切换到/usr/local/docker/文件夹 ...
- web服务器-nginx负载均衡
web服务器-nginx负载均衡 一 负载均衡的作用 负载均衡: 分摊到多个操作单元上进行执行,和它的英文名称很匹配.就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整 ...
- Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术
一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判 ...
- Linux学习10-CentOS搭建nginx负载均衡环境
前言 当自己的web网站访问的人越来越多,一台服务器无法满足现有的业务时,此时会想到多加几台服务器来实现负载均衡. 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,怎样将同一个域名的访问分散 ...
- Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx
第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...
- 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群
额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...
随机推荐
- 并发编程学习笔记之可见性&过期数据(二)
想要使用多线程编程,有一个很重要的前提,那就是必须保证操纵的是线程安全的类. 那么如何构建线程安全的类呢? 1. 使用同步来避免多个线程在同一时间访问同一数据. 2. 正确的共享和安全的发布对象,使多 ...
- C#之WinForm界面分辨率问题
在做上一个C#小工具的时候,当时为了处理界面最大化,分辨率问题,只是简单的用各种···Panle控价简单随意的处理控件的大小位置,字体什么的就随缘了(貌似有点不负责任啊,嘿嘿~). 所以在开始第二个C ...
- 【C#】ORM框架
ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁. Java典型的ORM框架有个:Hibernate,my ...
- c# 大文件分割 复制 Filestream 进度条
大文件分割复制,每次复制100M 也可以复制别的较大数值. 小于1G的小文件就直接复制得了.代码里没写 ,但是很简单 直接写进去就好了,难得是分割复制 所以没写. 好吧 我还是改了 改成小文件也可以复 ...
- linux 基本概念
Linux把物理内存分为了固定统一大小的块,称为page(页框),一般为4KB. Linux采用4KB页框大小作为标准的物理内存分配单元,内核用数据结构page描述一个页框的状态信息,其实页是进程的概 ...
- Flume启动时报错Caused by: java.lang.InterruptedException: Timed out before HDFS call was made. Your hdfs.callTimeout might be set too low or HDFS calls are taking too long.解决办法(图文详解)
前期博客 Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解) 问题详情 -- ::, (agent-shutdown-hook) [INFO - org.a ...
- logrotate工具日志切割
/var/log/zabbix/zabbix_server.log { daily ##每天转储 rotate ##保留60个备份 olddir /usr/local/src ##保存日志的位置 co ...
- 二创建maven父子项目
关于maven中的parent聚合一直都有没好好总结,固有这篇. ------------------------------------------------------------------- ...
- POJ1055 BULK MAILING
题目来源:http://poj.org/problem?id=1055 题目大意: 每封信都有一个zip-code, 由5位数字构成,可以通过将zip-code相同或相近的信件打包来节省成本.打包规则 ...
- JS模式和原型精解
首先需要知道的是 模式只是思想.不要用 结构 看模式. ES中函数是对象,因此函数也有属性和方法. 每个函数含有两个属性: length 和 prototype 每个函数含有两个非继承的方法: app ...