Nginx+Keepalived+Tomcat高可用负载均衡,Zookeeper集群配置,Mysql(MariaDB)搭建,Redis安装,FTP配置
JDK 安装步骤
下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html rpm -ivh jdk-8u171-linux-x64.rpm cd ~
vim .bash_profile
输入命令添加环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
export PATH [root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) [root@localhost ~]# javac -version
javac 1.8.0_171
-------------------
Tomcat安装
[root@localhost soft]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
[root@localhost soft]# tar -zxvf apache-tomcat-8.5.31.tar.gz
[root@localhost data]# mv apache-tomcat-8.5.31 tomcat-8801
tomcat-8801
端口 8801 8105 8543 8201
端口 8802 8106 8544 8202
端口 8803 8107 8545 8203 server
端口 8804 8108 8546 8204 job
端口 8088 8104 8542 8200 Dubbo
<Connector port="" protocol="HTTP/1.1" connectionTimeout=""
redirectPort="" URIEncoding="UTF-8" /> [root@localhost bin]# vim catalina.sh
修改/apache-tomcat-8.5.16/bin/catalina.sh
在catalina.sh中的 “#!/bin/sh” 下面添加如下代码:
if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
fi 在
# Get standard environment variables
PRGDIR=`dirname "$PRG"`
下添加下面代码
#设置记录CATALINA_PID。
#该设置会在启动时候bin下新建一个CATALINA_PID文件
#关闭时候从CATALINA_PID文件找到pid,kill。。。同时删除CATALINA_PID文件
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi vim tomcat的shutdown.sh文件,在最后一行加上-force;
例:exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
--------------------------
防火墙开放端口
开放端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8801 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8802 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8803 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8804 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2182 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2183 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 9952 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2182 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 2183 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 9952 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8801 -j ACCEPT 保存之前输入已开放端口号语句的命令
/etc/rc.d/init.d/iptables save
查看打开端口命令
/etc/init.d/iptables status
---------------------------
Nginx安装
安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel [root@localhost soft]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@localhost soft]# tar -zxvf pcre-8.35.tar.gz
[root@localhost data]# cd pcre-8.35
[root@localhost pcre-8.35]# ./configure
[root@localhost pcre-8.35]# make && make install
[root@localhost pcre-8.35]# pcre-config --version
8.35
[root@localhost soft]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
[root@localhost soft]# tar -zxvf nginx-1.14.0.tar.gz
[root@localhost soft]# cd nginx-1.14.0
[root@localhost soft]# ./configure --prefix=/data/nginx-1.14.0 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/pcre-8.35
[root@localhost nginx-1.14.0]# make
[root@localhost nginx-1.14.0]# make install
[root@localhost sbin]# cd /data/nginx-1.14.0/sbin
[root@localhost sbin]# ./nginx -V
nginx version: nginx/1.14.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/data/nginx-1.14.0 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/pcre-8.35
#指定配置文件启动
[root@localhost conf]# /data/nginx-1.14.0/sbin/nginx -c /data/nginx-1.14.0/conf/nginx.conf
[root@localhost sbin]# ./nginx -s reload # 重新载入配置文件
[root@localhost sbin]# ./nginx -s reopen # 重启 Nginx
[root@localhost sbin]# ./sbin/nginx -s stop # 停止 Nginx Nginx 负载均衡及请求转发
文档:https://www.cnblogs.com/wzjhoutai/p/6932007.html
[root@localhost sbin]# vim /data/nginx-1.14.0/conf/nginx.conf
http下添加(upstream后的名字不要有-_的符号)
upstream linuxIdc{
server 192.168.37.131:8801;
server 192.168.37.131:8802;
}
server 下添加
server {
listen 80;
server_name 192.168.37.131; location / {
root html;
index index.html index.htm;
} location /qdp-cr-web/ {
proxy_pass http://linuxIdc/;
}
}
[root@localhost sbin]# ./nginx -s stop
[root@localhost sbin]# /data/nginx-1.14.0/sbin/nginx -c /data/nginx-1.14.0/conf/nginx.conf
----------------------
Keeplived 安装
wget http://www.keepalived.org/software/keepalived-2.0.0.tar.gz
[root@localhost soft]# tar -zxvf keepalived-2.0.0.tar.gz
[root@localhost soft]# cd keepalived-2.0.0
[root@localhost keepalived-2.0.0]# ./configure --prefix=/data/keepalived-2.0.0
[root@localhost keepalived-2.0.0]# make && make install
[root@localhost keepalived]# cd /data/keepalived-2.0.0/etc/keepalived
[root@localhost keepalived]# cp keepalived.conf keepalived.conf_bak
主192.168.37.131
备192.168.37.132
VIP192.168.37.222
[root@localhost keepalived]# vim /etc/hosts
192.168.37.131 node1
[root@localhost keepalived]# vim keepalived.conf
-- master
! Configuration File for keepalived global_defs {
router_id node1
}
vrrp_script chk_nginx {
script "/lhdata/application/keepalived-2.0.0/etc/keepalived/chk_nginx.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state MASTER
interface eth4
mcast_src_ip 192.168.15.121
virtual_router_id 253
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass cr_ha_keeplived
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.15.253
}
} -- salve
! Configuration File for keepalived global_defs {
router_id node2
}
vrrp_script chk_nginx {
script "/lhdata/application/keepalived-2.0.0/etc/keepalived/chk_nginx.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state BACKUP
interface eth4
mcast_src_ip 192.168.15.122
virtual_router_id 253
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass cr_ha_keeplived
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.15.253
}
} -----
[root@localhost keepalived]# vim chk_nginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "" ]; then
/data/nginx-1.14.0/sbin/nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "" ]; then
killall keepalived
fi
fi
[root@localhost keepalived]# chmod 755 chk_nginx.sh
[root@localhost sbin]# cd /data/keepalived-2.0.0/sbin
[root@ora sbin]# /data/keepalived-2.0.0/sbin/keepalived -f /data/keepalived-2.0.0/etc/keepalived/keepalived.conf VRRP协议也需要设置防火墙! iptables -I INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
iptables -I OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
service iptables save
service iptables restart
---------------------------
Redis 安装
[root@ora soft]# tar -zxvf redis-4.0.6.tar.gz
[root@ora redis-4.0.6]# make
[root@ora redis-4.0.6]# cp redis.conf redis.conf_bak
[root@ora redis-4.0.6]# vim redis.conf
# bind 127.0.0.1
protected-mode no
#启动
[root@ora src]# ./redis-server /longfor_data/application/redis-4.0.6/redis.conf &
------------------
mysql数据库安装
[root@ora /]# yum install -y ncurses-devel libaio bison gcc-c++ openssl-devel
[root@ora /]# wget http://ftp.ubuntu-tw.org/mirror/mariadb//mariadb-10.2.15/bintar-linux-x86_64/mariadb-10.2.15-linux-x86_64.tar.gz
[root@ora soft]# tar -zxvf mariadb-10.2.15-linux-x86_64.tar.gz
[root@ora soft]# groupadd mysql
[root@ora soft]# useradd -g mysql mysql
[root@ora application]# mv mariadb-10.2.15 mysql
[root@ora mysql]# chown mysql:mysql -Rf /longfor_data/application/mysql/
[root@ora mysql]# chmod +x -Rf /longfor_data/application/mysql/
[root@ora mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@ora mysql]# scripts/mysql_install_db --user=mysql
[root@ora mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@ora etc]# vim my.cnf
[mysqld]下
basedir=/longfor_data/application/mysql
1)修改字符集为UTF8
#vi /etc/my.cnf
在[client]下面添加 default-character-set = utf8
在[mysqld]下面添加 character_set_server = utf8
修改完重启:#service mysql restart
2)增加错误日志
#vi /etc/my.cnf
在[mysqld]下面添加:
log-error = /usr/local/mysql/log/error.log
general-log-file = /usr/local/mysql/log/mysql.log
修改完重启:#service mysql restart
3) 设置为不区分大小写,linux下默认会区分大小写。
#vi /etc/my.cnf
在[mysqld]下面添加:
lower_case_table_name=1
修改完重启:#service mysql restart [root@ora mysql]# chkconfig mysql on
[root@ora mysql]# service mysql start
[root@ora ~]# cd
[root@ora ~]# vim .bash_profile
export PATH=/longfor_data/application/mysql/bin:$PATH
[root@ora ~]# source .bash_profile
[root@ora ~]# mysqladmin -u root password 'pass!@#cr'
[root@ora ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> show databases
MariaDB [(none)]> use mysql
Database changed
MariaDB [mysql]> select host,user,password from user;
MariaDB [mysql]> delete from user where user='';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> CREATE DATABASE IF NOT EXISTS qdp_adverts DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [mysql]> CREATE USER 'wysob'@'%' IDENTIFIED BY 'crPass!@#0614';
MariaDB [mysql]> update user set password=PASSWORD('pass!@#cr') where user='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> grant all on qdp_adverts.* to 'wysob'@'%' identified by 'crPass!@#0614';
MariaDB [mysql]> flush privileges;
# 取消授权
REVOKE all ON qdp_adverts.* FROM 'wysob'@'%';
----------------------
Zookeeper安装
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -zxvf zookeeper-3.4.10.tar.gz
cd zookeeper-3.4.10/
cp zoo_sample.cfg zoo1.cfg
cp zoo1.cfg zoo2.cfg
cp zoo1.cfg zoo3.cfg
#zoo1.cfg
clientPort=2181
dataDir=/lhdata/tmp/zookeeper/1
dataLogDir=/lhdata/tmp/zookeeper/1
server.1=192.168.37.131:2888:3888
server.2=192.168.37.131:2889:3889
server.3=192.168.37.131:2890:3890 #zoo2.cfg 2182
clientPort=2182
dataDir=/lhdata/tmp/zookeeper/2
dataLogDir=/lhdata/tmp/zookeeper/2
server.1=192.168.37.131:2888:3888
server.2=192.168.37.131:2889:3889
server.3=192.168.37.131:2890:3890 zoo3.cfg 2183
clientPort=2183
dataDir=/lhdata/tmp/zookeeper/3
dataLogDir=/lhdata/tmp/zookeeper/3
server.1=192.168.37.131:2888:3888
server.2=192.168.37.131:2889:3889
server.3=192.168.37.131:2890:3890 [root@localhost zookeeper-3.4.10]# cd /lhdata/application/zookeeper-3.4.10/ echo '1' > /lhdata/tmp/zookeeper/1/myid
echo '2' > /lhdata/tmp/zookeeper/2/myid
echo '3' > /lhdata/tmp/zookeeper/3/myid [root@localhost zookeeper-3.4.10]# vim start_all_zookeeper.sh
写入
cd /lhdata/application/zookeeper-3.4.10/
nohup bin/zkServer.sh start ./conf/zoo1.cfg &
nohup bin/zkServer.sh start ./conf/zoo2.cfg &
nohup bin/zkServer.sh start ./conf/zoo3.cfg & -------------------
安装 dubbo-admin
[root@iZm5eafpnt57xvwsi8ggywZ WEB-INF]# vim dubbo.properties
dubbo.registry.address=zookeeper://192.168.15.121:2181?backup=192.168.15.122:2182,192.168.15.151:2183
http://192.168.37.131:8088/dubbo-admin-2.5.8/ root root ------------------
[root@localhost qdp-adverts-job-8084]# vim /etc/hosts
192.168.37.131 qaskyline.qdingnet.com
-----------------------
ftp搭建
[root@localhost lhdata]# rpm -qa | grep vsftpd
[root@localhost lhdata]# service vsftpd start
[root@localhost lhdata]# mkdir -p /lhdata/data/ftp
[root@localhost lhdata]# adduser -s /bin/nologin -d /lhdata/data/ftp/qdpftp qdpftp
[root@localhost lhdata]# passwd qdpftp
[root@localhost home]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
local_root=/lhdata/data/ftp
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=NO
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
[root@node3 vsftpd]# vim user_list
添加
qdpftp
[root@node3 pam.d]# vim /etc/pam.d/vsftpd
注释
#auth required pam_shells.so
法1:执行命令setsebool -P ftp_home_dir on命令或者执行 setsebool -P ftpd_disable_trans on 命令,
然后执行service vsftpd restart命令重启vsftpd服务
法2:关闭selinux,修改/etc/selinux/config文件或/etc/syscofnig/selinux设置SELINUX= disabled ,然后重启
[root@node3 pam.d]# mkdir /lhdata/data/ftp/qdpftp
[root@node3 pam.d]# chown -R qdpftp:qdpftp /lhdata/data/ftp/qdpftp
[root@node3 pam.d]# chmod -R 777 /lhdata/data/ftp/qdpftp
[root@localhost lhdata]# service vsftpd restart
测试登录FTP
[c:\~]$ ftp 192.168.15.151 或浏览器 ftp://192.168.15.151
Nginx+Keepalived+Tomcat高可用负载均衡,Zookeeper集群配置,Mysql(MariaDB)搭建,Redis安装,FTP配置的更多相关文章
- Nginx keepalived实现高可用负载均衡详细配置步骤
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...
- Linux 系统中部署 LNMP 高可用负载均衡架构集群实现动态博客
(一)设计思路 高可用:keepalived 解决方案 负载均衡:(lvs)DR做轮询,需要一个调度器,后端节点两个(部署nginx动态博客),通过一个vip去访问动态博客 后端节点需要部署动态博客作 ...
- 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)
这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...
- LVS+Keepalived 实现高可用负载均衡
前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的.此时最常见的方式就是通过负载均衡来进行横向扩展.其中我们最常用的软件就是 Nginx.通过其反向代理的能力能够轻松实现负载均衡,当有服务出 ...
- haproxy+keepalived实现高可用负载均衡
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...
- haproxy+keepalived实现高可用负载均衡(转)
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...
- Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...
- LVS+Keepalived实现高可用负载均衡(转)
LVS+Keepalived实现高可用负载均衡 一.原理 1.概要介绍 如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具 ...
- 【架构师之路】 LVS+Keepalived实现高可用负载均衡
一.原理 1.概要介绍 如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能,其主要作用是检测web服务器的状态, ...
随机推荐
- [LOJ6356]四色灯
[LOJ6356]四色灯 题目大意: 有\(n(n\le10^9)\)个编号\(1\sim n\)的格子和\(m(m\le20)\)个按钮.每个格子有一个初始为\(0\)的数,每个按钮有一个数字\(a ...
- 用单进程、多线程并发、多线程分别实现爬一个或多个网站的所有链接,用浏览器打开所有链接并保存截图 python
#coding=utf-8import requestsimport re,os,time,ConfigParserfrom selenium import webdriverfrom multipr ...
- Docker 常用命令(一)
9. docker 删除镜像: docker rmi imageID 删除容器: docker rm containName 8. docker repo 上传: 我们看到这里有个 ...
- Java知识回顾 (8) 集合
早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组. 虽然这些类都非常有用,但是它们 ...
- ABAP表抛FTP通用程序
主要功能: 1.支持R3所有表(标准.自建)下传,下传方式为FTP 2.支持输出字段选择及顺序调整 3.支持动态条件,不同的表会有不同的选择条件,根据不同的条件选择需要下传的数据 4.支持单表.多表. ...
- 如何确定Isilon cluster的网卡类型是40GbE的还是10GbE的
可以使用isi upgrade cluster firmware devices命令. 从命令行输出可以看到,当前的cluster使用的是40G的前端网卡. 如果是10G网卡,输出结果应当是如下的样子 ...
- 工厂模式 Factory MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Docker学习笔记1 -- 刚入手docker时的几个命令
目录 Hello World 后台运行 停止运行 容器 载入镜像 指定端口映射 查看日志 查看应用的进程 登入镜像内部 移除容器 镜像 查看本地镜像 拉取镜像 查找镜像 更新镜像 构建镜像 设置镜像标 ...
- Hadoop Ls命令添加显示条数限制參数
前言 在hadoop的FsShell命令中,预计非常多人比較经常使用的就是hadoop fs -ls,-lsr,-cat等等这种与Linux系统中差点儿一致的文件系统相关的命令.可是细致想想,这里还是 ...
- No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer
异常信息如下所示: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for cla ...