일반적으로 실패의 가능한 단일 지점으로 인해 너무 많은 복잡하고 다양한 고객의 요구 및 기타 문제에 대처할 수없는 다음 단계 톰캣 사이트는 프로덕션 환경에서 단독으로 사용할 수 없습니다. 그래서 우리는 웹 사이트의 구조를 개선하기 위해 더 신뢰할 수있는 솔루션이 필요합니다.
Nginx에는 50,000 개의 동시 연결까지 응답을 지원하는 정적 리소스, 안정, 메모리, CPU 및 기타 시스템 자원 소비를 처리 할 수있는 강력한 능력을 가진 아주 좋은 HTTP 서버 소프트웨어가 매우 낮은 것입니다. 현재 많은 대형 사이트 동시성로드 전체 사이트 개선하기 위해 역방향 프록시 및 부하 분산 장치의 백엔드 웹 응용 프로그램으로 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
//开启相应的端口,不建议关闭防火墙
클라이언트 액세스 테스트 :
자세한 내용은 네트워크 디스크 다운로드 참조 보웬에 Tomcat 서버 패키지를 구축 : 톰캣 (웹) 서비스 댓글의 배치를
(2) 설치 서비스는 톰캣이 배포하는 방법
다른 Tomcat 서버와 구조를 구축하는 첫 번째 방법 (실제 생산 환경, 가정하지만, 실험 결과를 확인하기 위해, 우리는 홈 페이지의 내용과 동일하지 않는 것이 좋습니다, 일관성이 있어야합니다)
클라이언트 액세스 효과 :
(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
시험 부하 밸런스 :
부하의 균형이 달성되었습니다! ! !
--------이 문서의 끝 지금까지 읽어 주셔서 감사합니다 --------