- Director:192.168.122.46
- Realserver 192.168.122.102 httpd
- Realserver 192.168.122.116 nginx
Director
- 安装依赖包
1 | # yum -y install haproxy |
- 配置文件
1 | global |
1 |
|
1 | # mkdir -pv /apping/apping |
1 | # yum -y install haproxy |
1 | global |
1 |
|
1 | # mkdir -pv /apping/apping |
环境配置:
192.168.212.137 master.mysql.com master
192.168.212.138 slave1.mysql.com slave2
192.168.212.139 slave2.mysql.com slave2
192.168.212.132 proxy.mysql.com proxy
前提已经搭建好主从复制;
另外现在就是设置proxy.mysql.com;
1 | [root@localhost ~]# tar xf jdk-7u79-linux-x64.tar.gz -C /usr/java |
1 | [root@proxy local]# unzip amoeba-mysql-3.0.5-RC-distribution.zip |
实现读写分离:
[root@proxy conf]# vim dbServers.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
1 | <?xml version="1.0" encoding="utf-8"?> |
这里Amoeba就配置完成了;;;;;
在所有节点设置Amoeba登录后端数据库的用户名和密码;
1 | GRANT ALL PRIVILEGES ON repldb.* TO 'ixdba'@'%' identified by 'easyheart'; #如果多个数据库,可以将repldb换成* |
在Amoeba服务器上启动Amoeba
1 | [root@proxy conf]# /usr/local/amoeba/bin/launcher |
如果出现错误:
The stack size specified is too small, Specify at least 228k
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
1 | # vim /usr/local/amoeba/jvm.properties |
修改成如下,主要在于Xss,因为jdk7需要的最小线内存是228k,大于这个就行;
JVM_OPTIONS=”-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m”
1 | # ---------------------------------------------------------------------------------------------- |
1 | #scp /etc/profile.d/{java.sh tomcat.sh } 192.168.10.9:/etc/profile.d/ |
基于mod_proxy实现负载均衡
在httpd.conf的虚拟主机中配置如下内容:
1 | ProxyRequests Off |
如果出错,看日志;;
172.16.100.106/balancer-manager
1 | #vim /usr/local/tomcat/conf/server.xml |
两台Tomcat主机:
1 | # mkdir /web/webapps/WEB-INF |
实验环境:
192.168.122.220 www.123.com
安装jdk:
1 | #chmod +x jdk-6u45-linux-x64-rpm.bin |
在没安装nginx之前,对tomcat进行测试:
这个是默认的,如果想要访问的话,不能通过网站名字进行访问,只能例如http://192.168.122.220:8080进行访问;
自己添加虚拟主机,如下所示:
那么在进行访问tomcat的时候,必须是www.test.com:8080/**.jsp,否则将不会访问得到,这个要注意;;;
关于tomcat调整:
https://blog.linuxeye.com/413.html
mod_proxy:提供代理的功能,而mod_jk是作为一个独立的连接器存在,所以性能上要比较高;
mod_proxy_http:mod_proxy提供http反向代理;
如果使用tomcat做集群,建议使用httpd做反向代理;
环境配置:
tomcat主机:
1 | #vim /usr/local/tomcat/conf/server.xml |
192.168.10.106安装httpd,对后端的Tomcat做反向代理:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26安装httpd的配置选项:
#./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd \
--enable-so \
--enable-rewrite \
--enable-ssl \
--with-zlib \
--with-pcre \
--enable-cgi \
--enable-cgid \
--enable-modules=most \
--enable-deflate \
--enable-mods-shared=most \
--enable-mpms-shared=all \
--with-mpm=event \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balancer \
--enable-lbmethod-heartbeat \
--enable-heartbeat \
--enable-slotmem-shm \
--enable-slotmem-plain \
--enable-watchdog \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util
配置apache通过mod_proxy模块与tomcat连接
需要使用mod_proxy与tomcat实例连接,需要apache已经装载mod_proxy、mod_proxy_http、mod_proxy_ajp和proxy_balancer_module(实现tomcat集群时用到)等模块;
1 | #/usr/local/apache/bin/httpd -D DUMP_MODULES | grep proxy #默认没有,可以在配置文件中查找proxy然后启动这些; |
1 | #vim /etc/httpd/httpd.conf |
注释中心主机,添加
Include /etc/httpd/extra/httpd-proxy.conf
让apache跟tomcat的http连接器进行整合:
1 | #vim /etc/httpd/extra/httpd-proxy.conf |
重启httpd即可实现反向代理。
这个地方我没有添加httpd启动脚本,自己看前面的;;
http://172.16.100.106/index.jsp
需要着重明白这句话,所有的请求都会交给后端的Tomcat处理,httpd并不会处理任何请求,所以网页要放在tomcat指定的目录下;
【方式二】 配置apache跟tomcat的mod_jk连接器进行整合:
1 | #tar xf tomcat-connectors-1.2.37-src.tar.gz |
至此,一个基于mod_jk模块与后端名为Tomcat1的worker通信的配置已经完成,重新httpd服务即可生效;
环境:
tomcat server:192.168.122.115
httpd server:192.168.122.47
tomcat server:
安装jdk和tomcat:
1 | [root@nginx tomcat]# catalina.sh version |
需要注意的几点:
(1) 这个地方必须指定你的默认host,否则会解析到localhost上;;;
(2)在tomcat8上发现docBase不能指定为当前目录,这个不知为何,低版本的我试过,是可以的;
1 | <html><body><center> |
httpd server:
这里省事了,没有重新编译安装httpd
1 | [root@bogon ~]#yum -y install httpd |
重新启动httpd服务器即可;;;
如果tomcat在本地的话,那么在httpd进行反向代理的时候,仍要指定defaultHost=’www.test.com';
1 | #chmod +x jdk-6u45-linux-x64-rpm.bin |
-D
Sun JDK监控和故障处理工具:
API(Application Programming Interface)
ABI(Application Binary Interface)
包含四个独立却又彼此相关的技术
.java ——-> .class (bytecode)
JVM: Hotspot JVM
JRE: java运行时环境
JDK:java 开发环境
JDK=Java+API+JVM,是用于实现java程序开发的最小环境
JRE=JVM+java SE API
JAVA应用领域的不同,JAVA可分为三类:
JAVA SE: Standard Edtion
JAVA EE: Enterprise Edition
JAVA ME:Mobile Edtion
applet:小应用程序是采用Java编程语言编写的程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同。
由于其安全性问题,出现了CGI;
CGI:然后JSP;
JSP:Java Server Page
CMS:Concurrent Mark Sweep
特点:并发收集、低停顿
缺点:无法回收浮动垃圾、由于基于标记-清除算法,所以会产生碎片;
配置实例:
1 | #Global settings |
规划
1 | director: |
实验:
Keepalived + haproxy
Keepalived + nginx
这个地方只是最简单的,可自行参考《构建高可用Linux服务器》
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true