nginx+tomcat实现主备切换

xiaoxiao2021-02-28  92

一、准备工作

1、nginx安装

1.1、准备工作 选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL。 Nginx是C写的,需要用GCC编译;Nginx的Rewrite和HTTP模块会用到PCRE;Nginx中的Gzip用到zlib; 用命令“# gcc”,查看gcc是否安装;如果出现“gcc: no input files”信息,说明已经安装好了。 否则,就需要用命令“# yum install gcc”,进行安装了!一路可能需要多次输入y,进行确认。 安装好后,可以再用命令“#gcc”测试,或者用命令“# gcc -v”查看其版本号。 同样方法,用如下命令安装PCRE,zlib,OpenSSL(其中devel,是develop开发包的意思):

# yum install -y pcre pcre-devel   # yum install -y zlib zlib-devel   # yum install -y openssl openssl-devel  

1.2、下载并安装 创建目录(nginx-src)并进去;然后,从官方地址(http://nginx.org/)下载,解压,配置,编译,安装:

# mkdir nginx-src && cd nginx-src   # wget http://nginx.org/download/nginx-1.7.3.tar.gz   # tar xzf nginx-1.7.3.tar.gz    # cd nginx-1.7.3   # ./configure   # make   # make install   # whereis nginx   nginx: /usr/local/nginx  

默认的安装路径为:/usr/local/nginx;跳转到其目录下sbin路径下,便可以启动或停止它了。

# ./nginx -h   nginx version: nginx/1.7.3   Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]   Options:     -?,-h         : this help     -v            : show version and exit     -V            : show version and configure options then exit     -t            : test configuration and exit     -q            : suppress non-error messages during configuration testing     -s signal     : send signal to a master process: stop, quit, reopen, reload     -p prefix     : set prefix path (default: /usr/local/nginx/)     -c filename   : set configuration file (default: conf/nginx.conf)     -g directives : set global directives out of configuration file  

启动:nginx 停止:nginx -s stop 1.3、添加到系统服务 使用命令“# vi /etc/init.d/nginx”,打开编辑器,输入如下内容:

#!/bin/sh   # chkconfig: 2345 85 15   # Startup script for the nginx Web Server   # description: nginx is a World Wide Web server.    # It is used to serve HTML files and CGI.   # processname: nginx   # pidfile: /usr/local/nginx/logs/nginx.pid   # config: /usr/local/nginx/conf/nginx.conf      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin   DESC="nginx deamon"   NAME=nginx   DAEMON=/usr/local/nginx/sbin/$NAME   SCRIPTNAME=/etc/init.d/$NAME      test -x $DAEMON || exit 0      d_start(){     $DAEMON || echo -n "already running"   }      d_stop(){     $DAEMON -s quit || echo -n "not running"   }         d_reload(){     $DAEMON -s reload || echo -n "can not reload"   }      case "$1" in   start)     echo -n "Starting  DESC: DESC:NAME"     d_start     echo "."   ;;   stop)     echo -n "Stopping  DESC: DESC:NAME"     d_stop     echo "."   ;;   reload)     echo -n "Reloading $DESC conf..."     d_reload     echo "reload ."   ;;   restart)     echo -n "Restarting  DESC: DESC:NAME"     d_stop     sleep 2     d_start     echo "."   ;;   *)     echo "Usage: $ScRIPTNAME {start|stop|reload|restart}" >&2     exit 3   ;;   esac      exit 0  

保存退出后,再使用下面的命令,使其可执行;然后,添加配置并查看。 可用chkconfig修改其值,也可用ntsysv工具改变是否自启动。

# chmod +x /etc/init.d/nginx   # chkconfig --add nginx   # chkconfig nginx on/off   # chkconfig --list nginx   nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off 2.tomcat安装

2.1下载tomcat安装包,解压,可以修改webapps/ROOT之下的index.jsp文件,来标记到底是那个tomcat。

2.2修改tomcat的监听端口:此处为:8080,8180

2.3启动tomcat

二、配置nginx,实现主备切换:

配置文件如下:

upstream  192.168.0.102  {     server  192.168.0.102:8080 max_fails=1;#max_fails 表示健康检查失败的次数,这里表示次数为一次,即标记该服务器down了     server  192.168.0.102:8180 max_fails=1;     }     server     {     listen  80;     server_name  192.168.0.102;     location / {     proxy_next_upstream error timeout http_500 http_502 http_504;  #这里表示健康检查涉及到的情形,有这些情形的,都切换到另外的web服务器访问       proxy_read_timeout 10s;   #这里表示程序返回的时间,请参考php.ini的max_exe_time来设置。       proxy_pass        http://192.168.0.102;     proxy_set_header   Host             $host;     proxy_set_header   X-Real-IP        $remote_addr;     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;     }

注意:将这段配置放在http{}中。

三、测试

1.浏览器输入:http://192.168.0.102,观察访问的是哪一个tomcat

2.停掉正在访问的这个tomcat服务,然后重新访问,观察访问的是哪一个tomcat。

转载请注明原文地址: https://www.6miu.com/read-72750.html

最新回复(0)