Linux系统集群架构线上项目配置实战(二)
时间:2022-07-25
本文章向大家介绍Linux系统集群架构线上项目配置实战(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
写在前面
前面介绍了项目的整体情况与初始化服务器环境优化配置方面的内容,由于实际生产需求不一样,优化配置的点也不一样,仅供大家参考!
01
配置SSH免密登录
分发服务器使用全网备份服务器
首先创建分发用户
[root@centos ~]# useradd fenfa -u 999
[root@centos ~]# echo "123456"|passwd --stdin fenfa
Changing password for user fenfa.
passwd: all authentication tokens updated successfully.
[root@centos ~]# /bin/cp /etc/sudoers /etc/sudoers.bak
[root@centos ~]# echo "fenfa ALL=(root) NOPASSWD:/usr/bin/rsync" >>/etc/sudoers
[root@centos ~]# tail -1 /etc/sudoers
fenfa ALL=(root) NOPASSWD:/usr/bin/rsync
切换到fenfa用户创建密钥
02
配置expect批量分发工具
安装配置expect服务
[root@centos ~]$ yum install expect* -y
编写脚本
执行脚本结果如下
[fenfa@centos ~]$ sh fenfa_key.sh
10.0.0.1 [ OK ]
10.0.0.2 [ OK ]
10.0.0.3 [ OK ]
10.0.0.4 [ OK ]
10.0.0.5 [ OK ]
10.0.0.6 [ OK ]
10.0.0.7 [ OK ]
10.0.0.8 [ OK ]
10.0.0.9 [ OK ]
10.0.0.10 [ OK ]
10.0.0.11 [ OK ]
10.0.0.12 [ OK ]
10.0.0.13 [ OK ]
10.0.0.14 [ OK ]
切换到分发用户下查看是否分发成功
[root@centos ~]# su - fenfa
[fenfa@centos ~]$ ll /home/fenfa/.ssh/
total 4
-rw------- 1 fenfa fenfa 602 Sep 21 12:14 authorized_keys
根据上面的脚本编写分以hosts文件脚本
脚本执行结果如下
sh fenfa_file.sh host.list /etc/
[fenfa@centos ~]$ ll /etc/host.list
-rw-rw-r-- 1 fenfa fenfa 131 Sep 16 12:45 /etc/host.list
只需要将host.list文件替换成你所需要分发的文件就OK了,
03
前端反向代理及管理后台服务器的配置
前端nginx反向代理服务器配置
安装所需的依赖包
[root@centos ~]# yum install pcre-devel zlib-devle openssl-devel gcc-c++ –y
编译安装nginx
cd /download/tools/
wget http://nginx.org/download/nginx-1.12.1.tar.gz
tar zxf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/app/nginx-1.12.1
make && make install
[root@centos ~]# cd /app/
[root@centos app]# ln -s nginx-1.12.1 nginx
[root@centos ~]# cd /app/nginx/conf/
[root@centos conf]# mkdir extra
[root@centos conf]# cp nginx.conf nginx.conf.bak
在nginx.conf文件后增加下面的配置
include extra/*.conf;
[root@centos ~]# cd /app/nginx/conf/extra/
[root@centos extra]# vim admin.mingongge.conf
#
# HTTPS server configuration
#
server {
listen 80;
server_name admin.mingongge.com;
location / {
proxy_pass http://10.0.0.6:8080;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
[root@centos extra]# vim shangjia.mingongge.conf
#
# HTTPS server configuration
#
server {
listen 80;
server_name shangjia.mingongge.com;
location / {
proxy_pass http://10.0.0.7:8080;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
业务平台管理后台admin.mingongge.com
JDK Tomcat环境安装
tar zxf apache-tomcat-8.5.9.tar.gz
mv apache-tomcat-8.5.9 /usr/local/tomcat
tar zxf jdk-8u111-linux-x64.tar.gz -C /usr/local/
cd /usr/local/
ln -s jdk1.8.0_111 jdk
cat >>/etc/profile <<EOF
export JAVA_HOME=/usr/local/jdk1.8.0_111
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH=JAVA_HOME/bin:PATH
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.9
EOF
[root@centos local]# source /etc/profile
[root@centos local]# java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
JDK Tomcat环境配置
<Context path="" docBase="/www/admin" debug="0" reloadable="true" crossContext="true" />
echo "this is the admin.mingongge.com" >/www/admin/index.html
/usr/local/tomcat/bin/startup.sh
商家管理后台 shangjia.mingongge.com
JDK Tomcat环境安装请参考前面的步骤
<Context path="" docBase="/www/shangjia" debug="0" reloadable="true" crossContext="true" />
echo "this is the shangjia.mingongge.com" >/www/shangjia/index.html
/usr/local/tomcat/bin/startup.sh
测试反向代理
[root@centos ~]# curl http://admin.mingongge.com
this is the admin.mingongge.com
[root@centos ~]# curl http://shangjia.mingongge.com
this is the shangjia.mingongge.com
模拟用户访问
- 克隆虚拟机的注意点
- keepalived+nginx搭建高可用(注意点)
- 我的WCF之旅(10):如何在WCF进行Exception Handling
- 安装nginx出现的问题
- 18.11 LVS DR模式搭建
- Linux基础(day64)
- 我的WCF之旅(9):如何在WCF中使用tcpTrace来进行Soap Trace
- 物联网设备已沦陷,咖啡机也不能例外
- 我的WCF之旅(13):创建基于MSMQ的Responsive Service
- 开发自己的Data Access Application Block[上篇]
- 18.9/18.10 LVS NAT模式搭建
- 谈谈WCF中的Data Contract (1):Data Contract Overview
- Linux基础(day66)
- 字符串的驻留(String Interning)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP递归算法的简单实例
- Yii2框架操作数据库的方法分析【以mysql为例】
- 使用OpenCV实现道路车辆计数的使用方法
- python中tab键是什么意思
- PHP实时统计中文字数和区别
- PHP单例模式实例分析【防继承,防克隆操作】
- Python基于network模块制作电影人物关系图
- tp5(thinkPHP5框架)使用DB实现批量删除功能示例
- 统计PHP目录中的文件数方法
- python json.dumps() json.dump()的区别详解
- Win10下用Anaconda安装TensorFlow(图文教程)
- TP5(thinkPHP框架)实现后台清除缓存功能示例
- PHP递归的三种常用方式
- python实现xlwt xlrd 指定条件给excel行添加颜色
- PHP解析url并得到url参数方法总结