Linux系统集群架构线上项目配置实战(三)
时间:2022-07-25
本文章向大家介绍Linux系统集群架构线上项目配置实战(三),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
写在前面
前面介绍了分发文件管理、前端反向代理与管理后台服务器的配置操作,今天介绍下前端负载与APP服务器(用户与商家)、官网、FTP服务器的配置操作
01
前端负载均衡配置
安装所需的依赖包
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 conf]# cd extra/
oot@centos extra]# vim user.app.conf
#
# HTTPS server configuration
#
upstream userapp {
server 10.0.0.4:8080;
server 10.0.0.4:8081;
}
server {
listen 80;
server_name app.mingongge.com;
location / {
proxy_pass http://userapp;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
[root@centos conf]# cd extra/
[root@centos conf]# vim sj.app.conf
#
# HTTPS server configuration
#
upstream sjapp {
server 10.0.0.5:8080;
server 10.0.0.5:8081;
}
server {
listen 80;
server_name sjapp.mingongge.com;
location / {
proxy_pass http://sjapp;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
02
后端APP服务器配置
后端APP服务器JAVA环境安装配置
[root@centos tools]# ll
total 181168
-rw-r--r-- 1 root root 185515842 Sep 20 15:52 jdk-8u144-linux-x64.tar.gz
[root@centos tools]# tar zxf jdk-8u144-linux-x64.tar.gz -C /usr/local/
[root@centos tools]# ln -s /usr/local/jdk1.8.0_144 /usr/local/jdk
[root@centos tools]# cat >>/etc/profile<<EOF
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.CLASSPATH:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH=JAVA_HOME/bin:PATH
EOF
[root@centos tools]# tail -3 /etc/profile
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.CLASSPATH:/lib/dt.jar:/lib/tools.jar
export PATH=JAVA_HOME/bin:PATH
[root@centos tools]# source /etc/profile
[root@centos tools]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
后端tomcat 配置
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz
[root@centos tools]# tar zxf apache-tomcat-8.5.20.tar.gz -C /usr/local/
[root@centos tools]# ln -s /usr/local/apache-tomcat-8.5.20 /usr/local/tomcat
[root@centos tools]# cd /usr/local/apache-tomcat-8.5.20/conf/
[root@centos conf]# vim server.xml
-------------此处省略N行--------------
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="/www/userapp" debug="0" reloadable="true" crossContext="true" />
#增加上述站点目录
[root@centos conf]# mkdir /www/userapp -p
echo "this is the frist userapp server" >/www/userapp/index.html
[root@centos conf]# ../bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.20
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.20/temp
Using JRE_HOME: /usr/local/jdk
Using CLASSPATH: /usr/local/apache-tomcat-8.5.20/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Tomcat started.
[root@centos conf]# lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1587 root 48u IPv6 18137 0t0 TCP *:webcache (LISTEN)
另外一台用户APP 服务器按上述的配置进行
[root@centos conf]# mkdir /www/userapp -p
echo "this is the second userapp ">/www/userapp/index.html
商家APP环境配置请参考上面的配置
[root@centos conf]# mkdir /www/sjapp -p
echo "this is the frist sjapp ">/www/userapp/index.html
echo "this is the second sjapp ">/www/userapp/index.html
接下来测试下负载均衡
前端负载均衡测试
[root@centos conf]# curl http://10.0.0.1
this is the userapp server
[root@centos conf]# curl http://10.0.0.1
this is the second userapp
[root@centos conf]# curl http://app.mingongge.com
this is the userapp server
[root@centos conf]# curl http://app.mingongge.com
this is the second userapp
[root@centos extra]# curl http://sjapp.mingongge.com
this is the first sjapp server
[root@centos extra]# curl http://sjapp.mingongge.com
this is the second sjapp
浏览器访问测试
本地浏览器测试需要配置hosts文件
10.0.0.1 app.mingongge.com
10.0.0.1 sjapp.mingongge.com
03
官网与图片服务器配置
基本的架构也是一样使用反向代理,为了后期整体架构扩展
Nginx FTP的安装就不再描述了,太简单了,扯多了累
前面反向代理配置如下
[root@centos extra]# vim web.mingongge.conf
#
# HTTPS server configuration
#
server {
listen 80;
server_name www.mingongge.com;
location / {
proxy_pass http://10.0.0.8;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
[root@centos extra]# vim ftp.mingongge.com
#
# HTTPS server configuration
#
server {
listen 80;
server_name ftp.mingongge.com;
location / {
proxy_pass http://10.0.0.8:88;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
后端WEB服务器配置
[root@centos html]# vim index.html
welcome to mingongge.s web stie!!!!!!!!!!!!!
[root@centos ~]# /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@centos ~]# /usr/local/nginx/sbin/nginx
[root@centos ~]# curl 10.0.0.8
welcome to mingongge.s web stie!!!!!!!!!!!!!
FTP这块的配置其实是就是管理后台通过应用程序上传图片,前面用户通过nginx能访问到正确的页面即可,由于线下测试环境,不可能拿生产代码来做实验,因此管理后台上传图片无法模拟,过程就是后台上传图片是通过FTP的功能上传到指定的目录,然后前端通过nginx来调用这个图片去显示
因此就配置下访问图片即可
[root@centos conf]# cd extra/
[root@centos extra]# vim ftp.mingongge.conf
server {
listen 88;
server_name localhost;
location / {
root /www/ftp;
}
上传图片进行测试
通过前端反向代理直接访问域名来读取图,来实现应用程序调用图片的功能在其它前台页面展示的功能
发现也是可以正常访问的
- 【Spring实战】—— 2 构造注入
- 共享单车运维“朋友圈”越来越宽,乱停乱放现象有望改善吗?
- 【Spring实战】—— 15 Spring JDBC模板使用
- 前端开发总览
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- 【Spring实战】—— 4 Spring中bean的init和destroy方法讲解
- 基于AngularJS的过滤与排序
- 【Spring实战】—— 5 设值注入
- 科学家预测:未来100万年人类将变成半机械人类
- 【Spring实战】—— 8 自动装配
- 【Spring实战】—— 7 复杂集合类型的注入
- 【Spring实战】—— 6 内部Bean
- 几款可替代Dreamweaver的HTML5开发工具
- Linux下的Telnet设置方法介绍
- 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 数组属性和方法
- 三问Spring事务:解决什么问题?如何解决?存在什么问题?
- 从 OAuth2 服务器获取授权授权
- NHibernate 代码映射实体类
- 使用 Castle Windsor 实现 Web API 依赖注入
- SparkSQL与Hive metastore Parquet转换
- Spark中广播变量详解以及如何动态更新广播变量
- 按需加载 AngularJS 的 Controller
- Spark SQL中Not in Subquery为何低效以及如何规避
- 踩坑记 | Flutter升级影响了NestedScrollView?
- 使用 RequireJS 加载 AngularJS
- 通过Spark生成HFile,并以BulkLoad方式将数据导入到HBase
- 使用 C 创建 Windows 服务
- AngularJS 中的 controllerAs
- Android-Jetpack笔记-DataBinding
- Android-Jetpack笔记-Lifecycles