Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는! ! !

일반적으로 실패의 가능한 단일 지점으로 인해 너무 많은 복잡하고 다양한 고객의 요구 및 기타 문제에 대처할 수없는 다음 단계 톰캣 사이트는 프로덕션 환경에서 단독으로 사용할 수 없습니다. 그래서 우리는 웹 사이트의 구조를 개선하기 위해 더 신뢰할 수있는 솔루션이 필요합니다.

Nginx에는 50,000 개의 동시 연결까지 응답을 지원하는 정적 리소스, 안정, 메모리, CPU 및 기타 시스템 자원 소비를 처리 할 수있는 강력한 능력을 가진 아주 좋은 HTTP 서버 소프트웨어가 매우 낮은 것입니다. 현재 많은 대형 사이트 동시성로드 전체 사이트 개선하기 위해 역방향 프록시 및 부하 분산 장치의 백엔드 웹 응용 프로그램으로 Nginx에 서버를 사용합니다.

케이스 환경

Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는!  !  !

케이스 구현

(1) 설치 서비스 톰캣 1 배포하는

[root@localhost ~]#  tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src
[root@localhost ~]# mv /usr/src/apache-tomcat-8.5.16/ /usr/local/tomcat8
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 
                          ……………………          //省略部分内容
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
//host定义一个虚拟主机,域名为localhost,appBase定义应用程序基准目录,unpackWARs定义是否自动解压,autoDeploy定义是否自动部署
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
        <Context docBase="/web/webapp" path="" reloadable="false">
        </Context>
//context定义一个web应用(虚拟目录),path指定访问目录,docBase定义网页目录,当应用程序发生变化时候,自动装载,不用重启tomcat(手动添加 <Context  ……></Context>内容)

      </Host>
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
//启动Tomcat服务
[root@localhost ~]# mkdir -p /web/webapp
[root@localhost ~]# vim /web/webapp/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
        <head>
                <title>JSP test1 page</title>
</head>
<body>
<% out.println("welcome to test");%>
</body>
</html>
[root@localhost ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      18026/java   
[root@localhost ~]# firewall-cmd --add-port=8080/tcp
success
//开启相应的端口,不建议关闭防火墙

클라이언트 액세스 테스트 :
Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는!  !  !

자세한 내용은 네트워크 디스크 다운로드 참조 보웬에 Tomcat 서버 패키지를 구축 : 톰캣 (웹) 서비스 댓글의 배치를

(2) 설치 서비스는 톰캣이 배포하는 방법

다른 Tomcat 서버와 구조를 구축하는 첫 번째 방법 (실제 생산 환경, 가정하지만, 실험 결과를 확인하기 위해, 우리는 홈 페이지의 내용과 동일하지 않는 것이 좋습니다, 일관성이 있어야합니다)

클라이언트 액세스 효과 :
Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는!  !  !

(3) 설치 서비스의 Nginx를 배포

[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel
//pcre为nginx提供rewrite所需的正则表达式语法,zlib:提供压缩,openssl-devel:提供ssl加密
[root@localhost ~]# groupadd www
[root@localhost ~]# useradd -g www www -s /bin/false
//创建所需的程序用户及组(/bin/false)这个shell非常严格,无论通过何种方式登录系统都不允许
[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/nginx-1.12.0/
[root@localhost nginx-1.12.0]#  ./configure --prefix=/usr/local/nginx \
 --user=www --group=www  --with-file-aio \
 --with-http_stub_status_module  \
 --with-http_gzip_static_module --with-http_flv_module  \
 --with-http_ssl_module 
 [root@localhost nginx-1.12.0]# make && make install

: Nginx의 서비스 내용 및 관련 패키지, 보웬을 참조하시기 바랍니다 Nginx에 서버를 기반으로 상세하게 관련 구성 및 웹 호스팅을 구축

각 구성 항목의 의미 :
// --prefix = 지정 설치 디렉토리;
// - 사용자 = - = 그룹 : 지정된 사용자 및 그룹을 실행하는 단계;
// - 파일 -와 - AIO를 : 파일 수정 지원을 활성화;
// -와 - http_stub_status_module :이 기능을 사용하도록 설정 한 통계;
// --with-http_gzip_static_module : GZIP에게 정적 압축을 사용;
// -와 - http_flv_module : FLV 활성화 모듈, 메모리 기반 파일 오프셋 시간을 제공하고자;
/ / --with-http_ssl_module : SSL 모듈을 활성화;

[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
//该Nginx服务配置文件
http {
                                         ………………         //省略部分内容

        upstream  tomcat_server {
        server 192.168.1.2:8080 weight=1;
        server 192.168.1.3:8080 weight=1;
        }
                 //设定负载均衡的服务器列表,weight参数表示权限,权值越高被分到的概率越大
                 //Nginx使用upstream模块实现代理
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat_server;
                         //把nginx的默认站点通过proxy_pass方法代理到设定好的tomcat_server负载均衡服务器组 
        }
                                           ………………………………    //省略部分内容                                                                 
}                                                                       
[root@localhost nginx-1.12.0]# /usr/local/nginx/sbin/nginx -t
//检查Nginx服务配置文件是否有语法错误
[root@localhost nginx-1.12.0]# /usr/local/nginx/sbin/nginx 
//启动服务,由于没有优化路径,所以应打绝对路径
[root@localhost nginx-1.12.0]# netstat -anpt | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      46627/nginx: master 
[root@localhost nginx-1.12.0]# firewall-cmd --add-service=http
success

시험 부하 밸런스 :
Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는!  !  !
Nginx에 + 톰캣로드 밸런싱 클러스터 인스턴스는, 지금 할 수있는!  !  !
부하의 균형이 달성되었습니다! ! !

--------이 문서의 끝 지금까지 읽어 주셔서 감사합니다 --------

추천

출처blog.51cto.com/14157628/2435687