yum -y install pcre-develyum -y install openssl-develyum -y install gccyum -y install lrzszyum -y install openssh-clients
su - root
1、cd /usr/local
2、rz -y
3、tar -xzvf nginx-1.7.7.tar.gz
4、mv nginx-1.7.
1、进入解压后的目录,指定安装路径,注:不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etccd /usr/local/nginx./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf2、编译:make3、安装:make install4、启动/usr/local/nginx/sbin/nginx5、查看http://192.168.xx.xxx出现:welcome Nginx,就安装ok了。6、停止/usr/local/nginx/sbin/nginx –s stop
1、su - root 用户2、进入usr目录cd /usr3、在usr目录下建立java安装目录mkdir –m 755 java4、将jdk-6u24-linux-i586.bin拷贝到java目录下rz -y4、安装jdkcd /usr/javachmod 755 jdk-6u24-linux-i586.bin./jdk-6u24-linux-i586.bin‘注意:如果出现/lib/ld-linux.so.2: bad ELF interpreter:No such file or directory,安装下glic即可: yum install glibc.i6865、安装完毕为他建立一个链接以节省目录长度ln -s /usr/java/jdk1.6.0_24//usr/jdk6、配置环境变量vim /etc/profile添加内容:vi /etc/profileexport JAVA_HOME=/usr/jdkexport PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME PATH CLASSPATH7、执行下命令(source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。)source /etc/profile
1、上传、解压:rz -ytar -zxvf apache-tomcat-6.0.37.tar.gz2、重命名:mv apache-tomcat-6.0.37 tomcat
1、cd /usr/local/nginx2、vi /usr/local/nginx/nginx.conf
添加:
user nobody nobody;#定义Nginx运行的用户和用户组worker_processes 4;#nginx进程数,建议设置为等于CPU总核心数。error_log logs/error.log info;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]worker_rlimit_nofile 1024;#一个nginx进程打开的最多文件描述符数目,所以建议与ulimit -n的值保持一致。pid logs/nginx.pid;#进程文件#工作模式及连接数上限events {use epoll;#参考事件模型,use [ kqueue | rtsig | epoll |/dev/poll | select | poll ]; epoll模型是Linux2.6以上版本内核中的高性能网络I/O模型worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)}#设定http服务器,利用它的反向代理功能提供负载均衡支持http {include mime.types;#文件扩展名与文件类型映射表default_type application/octet-stream;#默认文件类型#设定负载均衡的服务器列表upstream tomcatxxxcom {server 192.168.56.200:8080;server 192.168.56.201:8080;}#设定日志格式log_format www_xy_com ‘$remote_addr - $remote_user [$time_local] "$request" ‘‘$status $body_bytes_sent "$http_referer" ‘‘"$http_user_agent" "$http_x_forwarded_for"‘;sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。keepalive_timeout 65;#长连接超时时间,单位是秒#gzip on;#设定虚拟主机,默认为监听80端口server {listen 80;server_name tomcat.xxx.com;#域名可以有多个,用空格隔开#charset koi8-r;#设定本虚拟主机的访问日志access_log /data/logs/access.log www_xy_com;#对 "/" 启用反向代理location /{proxy_pass http://tomcatxxxcom;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#error_page 500 502 503 504 /50x.html;location =/50x.html {root html;}}}
3、创建logs所需要的文件夹/data /logs/
cd /mkdir –m 755 datacd datamkdir –m 755 logs
4、启动tomcat、nginx。
/usr/local/tomcat/bin/startup.sh/usr/local/nginx/sbin/nginx
5、修改hosts,加入
192.168.56.99 tomcat.xxx.com
上面部分安装,我是用脚本装的。没按照上面来,使用上面配置时,启动nginx时,提示我"[emerg] 7458#0: unknown directive "<feff>user" in /usr/local/nginx/nginx.conf:1",
于是,我就直接拿着nginx.conf.default修改了,改改也能用。下面是我修改后的配置(v1下:/usr/local/nginx/nginx.conf):
worker_processes 1;error_log logs/error.log info;pid logs/nginx.pid;events {use epoll;worker_connections 1024;}http {include mime.types;default_type application/octet-stream;# 配置需要代理的服务器列表upstream servers {server v3:8080;server v4:8080;}log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘‘$status $body_bytes_sent "$http_referer" ‘‘"$http_user_agent" "$http_x_forwarded_for"‘;access_log logs/access.log main;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;access_log logs/host.access.log main;location /{#引用上面的配置proxy_pass http://servers;proxy_set_header Host $host;proxy_set_header X-Real_IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;root html;index index.html index.htm;}error_page 500502503504/50x.html;location =/50x.html {root html;}}}
!ConfigurationFilefor keepalivedglobal_defs {}vrrp_script chk_nginx {script "killall -0 nginx"interval 1weight -2}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 1priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.33.181/24}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 {state BACKUPinterface eth0virtual_router_id 2priority 98advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.33.182/24}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}
!ConfigurationFilefor keepalivedglobal_defs {}vrrp_script chk_nginx {script "killall -0 nginx"interval 1weight -2}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 1priority 98advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.33.181/24}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 {state MASTERinterface eth0virtual_router_id 2priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.33.182/24}notify_master "/etc/keepalived/notify.sh master"notify_backup "/etc/keepalived/notify.sh backup"notify_fault "/etc/keepalived/notify.sh fault"}
#!/bin/bashwhile true;doA=`ps -ef|grep nginx |wc -l`B=`ps -ef|grep keepalived |wc -l`if[ $A -eq 1];thenecho ‘restart nginx!!!!‘/usr/local/nginx/sbin/nginxif[ $A -eq 1];thenif[ $B -gt 1];thenkillall keepalivedservice keepalived start &fififiif[ $B -eq 1];thenservice keepalived start &fisleep 5done
#!/bin/bash# keepalived notify scriptcontact=‘root@localhost‘notify(){mailsubject="`hostname` to be $1: vip floating"mailbody="`date ‘+%F %H:%M:%S‘`: vrrp transition, `hostname` changed to be $1"echo $mailbody | mail -s "$mailsubject" $contact}case"$1"inmaster)notify masterecho "变成主了,触发master!">>/root/k_tips.log/usr/local/nginx/sbin/nginxexit 0;;backup)notify backupecho "变成从了,触发backup事件!">>/root/k_tips.log/usr/local/nginx/sbin/nginxexit 0;;fault)notify faultecho "脑列了,触发fault事件!">>/root/k_tips.log/usr/local/nginx/sbin/nginx -s stopexit 0;;*)echo ‘Usage: notify.sh {master|backup|fault}‘exit 1;;esac
# to have these messages end up in /var/log/haproxy.log you will# need to:## 1) configure syslog to accept network log events. This is done# by adding the ‘-r‘ option to the SYSLOGD_OPTIONS in# /etc/sysconfig/syslog## 2) configure local2 events to go to the /var/log/haproxy.log# file. A line like the following can be added to# /etc/sysconfig/syslog## local2.* /var/log/haproxy.log## 上面说我们要把日志写到/var/log/haproxy.log需要修改以下两个地方:1./etc/sysconfig/syslog , 这个我现在用的centos6.6已经没有了,取代它的是同目录下的rsyslogvi /etc/sysconfig/rsyslog这里对它做了以下更改:修改前:SYSLOGD_OPTIONS="-c 5"修改后:SYSLOGD_OPTIONS="-c 2 -r"2. /etc/rsyslog.conf 修改日志存放位置vi /etc/rsyslog.conf我在local7.*下面加了一行,修改后是这样的:# Save boot messages also to boot.loglocal7.* /var/log/boot.loglocal2.* /var/log/haproxy.log
Lvs + Ngnix + Haproxy + Keepalived + Tomcat 实现三种HA软负载均衡和Tomcat Session共享
原文:http://blog.csdn.net/u010811257/article/details/46432219