企业网站推广的方法有?,余姚厂家高端网站设计,网站空间商盗取数据,台州建设工程信息网站目录 前瞻
动静分离和负载均衡原理
实现方法
实验#xff08;七层代理#xff09; 部署Nginx负载均衡服务器(192.168.75.50:80)
部署第一台Tomcat应用服务器#xff08;192.168.75.60:8080#xff09;
多实例部署第二台Tomcat应用服务器#xff08;192.168.75.70:80…目录 前瞻
动静分离和负载均衡原理
实现方法
实验七层代理 部署Nginx负载均衡服务器(192.168.75.50:80)
部署第一台Tomcat应用服务器192.168.75.60:8080
多实例部署第二台Tomcat应用服务器192.168.75.70:8080 192.168.75.70:8081
添加动态和静态测试页面
第一台Tomcat应用服务器192.168.75.60:8080
第二台Tomcat应用服务器192.168.75.70:8080 192.168.75.70:8081
Nginx负载均衡服务器(192.168.75.50:80) 在nginx服务器配置文件中添加动静分离配置
本机浏览器测试 前瞻
动静分离和负载均衡原理 Nginx处理静态页面的效率远高于Tomcat的处理能力 若Tomcat的请求量为1000次则Nginx的请求量为6000次 Tomcat每秒的吞吐量为0.6MNginx的每秒吞吐量为3.6M Nginx处理静态资源的能力是Tomcat处理的6倍 由于Nginx服务是轻量级、高性能处理静态页面强但是几乎不能处理动态页面所以需要转发给多台tomcat服务器处理动态页面请求。 负载均衡是以Nginx为复制均衡器Tomcat作为应用服务器。Nginx的负载均衡是通过反向代理实现的。反向代理即作为服务端的代理接受客户端的请求并根据配置转发给后端的tomcat服务器处理完之后再通过nginx返回给客户端。 实现方法
nginx tomcat 动静分离
nginx使用location去正则匹配用户的访问路径的前缀或者后缀去判断接收的请求是静态的还是动态的静态资源请求在Nginx本地进行处理响应动态页面请求通过反向代理转发给后端应用服务器
负载均衡
使用反向代理先在http块中使用upstream模块定义服务器组名和服务器列表使用location匹配路径再用proxy_pass http://... 服务器组名进行七层代理转发。 实验七层代理 实验准备 Liunx服务器 Nginx 服务器192.168.75.50:80 Tomcat服务器1192.168.75.60:8080 Tomcat服务器2192.168.75.70:8080 192.168.75.70:8081 windows客户端 本机用于访问网页测试192.168.75.1 部署Nginx负载均衡服务器(192.168.75.50:80)
关闭防火墙安全机制
systemctl stop firewalld
setenforce 0 下载安装编译环境创建nginx程序用户
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make
useradd -M -s /sbin/nologin nginx
去官网下载安装nginx压缩包nginx下载https://nginx.org/en/download.html 解压压缩包添加模块编译安装nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream
make make install
注编译时每个模块的作用 创建软连接将nginx添加到$PATH路径下直接调用
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
将nginx添加到systemd服务中去以便直接使用systemd服务管理
vim /lib/systemd/system/nginx.service[Unit]
Descriptionnginx
Afternetwork.target
[Service]
Typeforking
PIDFile/usr/local/nginx/logs/nginx.pid
ExecStart/usr/local/nginx/sbin/nginx
ExecrReload/bin/kill -s HUP $MAINPID
ExecrStop/bin/kill -s QUIT $MAINPID
PrivateTmptrue
[Install]
WantedBymulti-user.targetchmod 754 /lib/systemd/system/nginx.service
启动nginx服务并且查看状态是否成功
systemctl start nginx.service
systemctl status nginx.service
部署第一台Tomcat应用服务器192.168.75.60:8080
关闭防火墙安全机制
systemctl stop firewalld
setenforce 0
解压jdk压缩包到/usr/local路径下
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
配置jdk环境
打开配置文件
vim /etc/profile.d/java.sh
添加以下内容
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:${JRE_HOME}/bin:$PATH
运行此文件
source /etc/profile.d/java.sh
解压tomcat压缩包移到/usr/local路径下并改名为tomcat
tar zxvf apache-tomcat-8.5.16.tar.gz
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat开启tomcat服务并检测状态
./usr/local/tomcat/bin/startup.sh
netstat -ntap | grep 8080多实例部署第二台Tomcat应用服务器192.168.75.70:8080 192.168.75.70:8081
关闭防火墙安全机制
systemctl stop firewalld
setenforce 0
解压jdk压缩包到/usr/local路径下
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
配置jdk环境
打开配置文件
vim /etc/profile.d/java.sh
添加以下内容
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:${JRE_HOME}/bin:$PATH
运行此文件
source /etc/profile.d/java.sh
解压tomcat压缩包
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2.配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
添加以下内容
#tomcat1
export CATALINA_HOME1/usr/local/tomcat/tomcat1
export CATALINA_BASE1/usr/local/tomcat/tomcat1
export TOMCAT_HOME1/usr/local/tomcat/tomcat1#tomcat2
export CATALINA_HOME2/usr/local/tomcat/tomcat2
export CATALINA_BASE2/usr/local/tomcat/tomcat2
export TOMCAT_HOME2/usr/local/tomcat/tomcat2运行
source /etc/profile.d/tomcat.sh
修改 tomcat2 中的 server.xml 文件要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
Server port8006 shutdownSHUTDOWN #22行修改Server prot默认为8005 - 修改为8006
Connector port8081 protocolHTTP/1.1 #69行修改Connector portHTTP/1.1 默认为8080 - 修改为8081
Connector port8010 protocolAJP/1.3 redirectPort8443 / #116行修改Connector port AJP/1.3默认为8009 - 修改为8010注第一个连接器默认监听8080端口负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时使用的就是这个连接器。 第二个连接器默认监听8009端口AJP端口即容器使用如Apache能通过AJP协议访问Tomcat的8009端口。
修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2例 启动各 tomcat 中的 /bin/startup.sh 并查看状态
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh netstat -natp | grep java 浏览器访问测试
http://192.168.75.70:8080
http://192.168.75.70:8081 添加动态和静态测试页面
第一台Tomcat应用服务器192.168.75.60:8080
添加动态测试页面1
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test1 page/title #指定为 test1 页面
/head
body
% out.println(动态页面 1,http://www.test1.com);%
/body
/html修改配置文件
vim /usr/local/tomcat/conf/server.xml
找到此行
Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue
在下面添加Context docBase/usr/local/tomcat/webapps/test path reloadabletrue/Context开启服务
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh 第二台Tomcat应用服务器192.168.75.70:8080 192.168.75.70:8081
添加动态页面2
mkdir /usr/local/tomcat/tomcat1/webapps/test
mkdir /usr/local/tomcat/tomcat2/webapps/testvim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test2 page/title #指定为 test2 页面
/head
body
% out.println(动态页面 2,http://www.test2.com);%
/body
/html
修改配置文件
vim /usr/local/tomcat/tomcat1/conf/server.xml
找到此行
Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue
在下面添加Context docBase/usr/local/tomcat/tomcat1/webapps/test path reloadabletrue/Context开启服务
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh 添加动态页面3
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
% page languagejava importjava.util.* pageEncodingUTF-8%
html
head
titleJSP test2 page/title #指定为 test2 页面
/head
body
% out.println(动态页面 3,http://www.test3.com);%
/body
/html
修改配置文件
vim /usr/local/tomcat/tomcat2/conf/server.xml
找到此行
Host namelocalhost appBasewebapps unpackWARstrue autoDeploytrue
在下面添加Context docBase/usr/local/tomcat/tomcat2/webapps/test path reloadabletrue/Context开启服务
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh Nginx负载均衡服务器(192.168.75.50:80)
添加静态页面
echo htmlbodyh1这是静态页面/h1/body/html /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cp /root/111.jpg /usr/local/nginx/html/img 在nginx服务器配置文件中添加动静分离配置
vim /usr/local/nginx/conf/nginx.conf
......
http {
......#gzip on;#配置负载均衡的服务器列表weight参数表示权重权重越高被分配到的概率越大upstream tomcat_server {server 192.168.75.60:8080 weight1;server 192.168.75.70:8080 weight1;server 192.168.75.70:8081 weight1;}server {listen 80;server_name localhost;charset utf-8;#access_log logs/host.access.log main;#配置Nginx处理动态页面请求将 .jsp文件请求转发到Tomcat 服务器处理location ~ .*\.jsp$ {proxy_pass http://tomcat_server;
#设置后端的Web服务器可以获取远程客户端的真实IP
##设定后端的Web服务器接收到的请求访问的主机名域名或IP、端口默认HOST的值为proxy_pass指令设置的主机名。如果反向代理服务器不重写该请求头的话那么后端真实服务器在处理时会认为所有的请求都来自反向代理服务器如果后端有防攻击策略的话那么机器就被封掉了。proxy_set_header HOST $host;
##把$remote_addr赋值给X-Real-IP来获取源IPproxy_set_header X-Real-IP $remote_addr;
##在nginx 作为代理服务器时设置的IP列表会把经过的机器ip代理机器ip都记录下来proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#配置Nginx处理静态图片请求location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {root /usr/local/nginx/html/img;expires 10d;}location / {root html;index index.html index.htm;}
......}
......
}检测语法没错直接重启nginx服务 本机浏览器测试
浏览器访问 http://192.168.75.50/111.jpg 浏览器访问 http://192.168.75.50/index.jsp
动态页面1 刷新动态页面2 刷新动态页面3