記事ディレクトリ
Tomcatの概要
Tomcatサーバーは、無料のオープンソースWebアプリケーションサーバーであり、軽量のアプリケーションサーバーです。中小規模のシステムで、同時ユーザーが多くない場合に一般的に使用されます。JSPプログラムを開発およびデバッグするための最初の選択肢です。初心者にとっては、Apacheサーバーがマシン上で構成されている場合、それを使用してHTML(標準のユニバーサルマークアップ言語のアプリケーション)ページアクセス要求に応答することができます。実際、TomcatはApacheサーバーの拡張機能ですが、実行時に独立して実行されるため、Tomcatを実行すると、実際にはApacheとは別のプロセスとして実行されます。
Ngiinxの概要
Nginxは、軽量のWebサーバー/リバースプロキシサーバーおよび電子メール(IMAP / POP3)プロキシサーバーで、BSDのようなプロトコルでリリースされています。その特徴は、メモリ使用量が少なく、同時実行機能が強力であることです。実際、nginxの同時実行機能は、同じタイプのWebサーバーでより優れたパフォーマンスを発揮します。中国本土のnginx Webサイトのユーザーには、Baidu、JD、Sina、NetEase、Tencent、Taobaoなどがあります。
特徴
- 最大50,000の同時接続応答をサポート
- 強力な静的リソース処理機能を備えています
- スムーズに実行
- ハードウェアリソースの使用量が少ない
Nginx負荷分散の実装原理
Ngxin構成パラメーターの概略図
上流サーバープール{}
- バックエンドサーバーを構成した後、それ自体に応答データ
proxy_pass http:// server addressを提供します。 - アクセス要求をバックエンドサーバープールに転送するサーバー処理を構成する
Nginx動的および静的分離の実装原理
サービス料金はクライアントからのリクエストを受け取ります。基本の友達の静的リソースには動的リソースもあります。静的リソースはnginxによって提供され、動的リソースはnginxによってバックエンドサーバーに転送されてサービスを提供します。
Tomcatと比較したnginx処理の静的ページの利点
- Nginxは、Tomcatよりも静的ページの処理においてはるかに効率的です
- Tomcatが1000回要求する場合、Nginxは6000回要求します
- Tomcatのスループットは毎秒0.6Mで、Nginxのスループットは毎秒3.6Mです。
- 静的リソースを処理するNginxの機能は、Tomcatの6倍です。
かかって来い!公演!!
nginxサービスIP:20.0.0.11
cat01:20.0.0.3
cat02:20.0.0.4
実験①
Nginxサーバーを構築する
安装环境依赖包
[root@nginx bao]# yum -y install \
> pcre-devel \
> zlib-devel \
> gcc gcc-c++ \
> make
[root@nginx bao]# useradd -M -s /sbin/nologin nginx
[root@nginx bao]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx bao]# cd nginx-1.12.2/
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \ ##统计模块
> --with-http_gzip_static_module \ ##压缩模块
> --with-http_flv_module ##视频模块
[root@nginx nginx-1.12.2]# make && make install
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
設定ファイルを編集
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
#gzip on; ##找到这行,在下面添加
upstream catserver {
##设置节点服务器,你们做的时候名字起的正规点啊哈哈哈
server 20.0.0.3:8080 weight=1; ##指向cat01 IP,weight指的是权重
server 20.0.0.4:8080 weight=1; ##看上面自己理解吧
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location ~.*.jsp$ {
##往下加,匹配到以 jsp 结尾的网页再两台节点服务器中轮询
proxy_pass http://catserver;
}
[root@nginx nginx-1.12.2]# systemctl stop firewalld
[root@nginx nginx-1.12.2]# setenforce 0
Tomcatサーバーを構築する
2つのtomcat一般操作をインストールして構成する
[root@cat01 bao]# tar zxvf jdk-8u91-linux-x64.tar.gz
[root@cat01 bao]# mv jdk1.8.0_91/ /usr/local/
[root@cat01 bao]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@cat01 bao]# source /etc/profile
[root@cat01 bao]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
[root@cat01 bao]# tar zxvf apache-tomcat-8.5.16.tar.gz
[root@cat01 bao]# mv apache-tomcat-8.5.16 /usr/local/tomcat
[root@cat01 bao]# cd /usr/local/tomcat/
[root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
[root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
[root@cat01 bao]# mkdir -p /web/cat01
[root@cat01 bao]# vim /web/cat01/index.jsp ##cat02 改成 /web/cat02
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>CAT01 web</title>
</head>
<body>
<% out.println("This is CAT01.");%> ##另一台配置 This is CAT02.
</body>
</html>
[root@cat01 bao]# vim /usr/local/tomcat/conf/server.xml
148 <Host name="localhost" appBase="webapps"
149 unpackWARs="true" autoDeploy="true"> ##主配置文件里找到这个服字段,在下面添加,意思差不多是重新定义主页位置
150 <Context docBase="/web/cat01" path="" reloadable="false">
151 </Context>
[root@cat01 bao]# startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_91/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@cat01 bao]# netstat -ntap |grep 8080
tcp6 0 0 :::8080 :::* LISTEN 74552/java
検証実験
実験は成功しました。動的なWebページが一致すると、ポーリングは2つのWebサーバーを指しますが、作業中は2つのホストのページが同じである必要があります。
実験②
実験的要件:nginxは静的画像を処理し、Tomcatは動的ページを処理
し、パスを参照するように Tomcatを構成し、nginxは画像を配置します。
ディレクトリ名はJavaプロジェクト名と同じである必要があります
Tomcat01の設定
02変わらない、困る
[root@cat01 bao]# vim /web/cat01/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="nginx/html; charset=UTF-8"> ##位置和图的位置一样,nginx/html
<title>CAT01 web</title>
</head>
<body>
<div>This is CAT01.</div><br>
<img src="FDL.jpg">
</body>
</html>
Nginxの設定
[root@nginx /]# cd /usr/local/nginx/html/
[root@nginx html]# rz -E
rz waiting to receive.
[root@nginx html]# ls
50x.html FDL.jpg index.html
[root@nginx html]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
##添加下面
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root html;
expires 30s;
テスト実験
実験は成功した