溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx云服務器是如何實現負載均衡和動靜分離的

發(fā)布時間:2020-04-21 11:55:17 來源:億速云 閱讀:269 作者:三月 欄目:云計算

下文給大家?guī)鞱ginx云服務器是如何實現負載均衡和動靜分離的,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網上有很多書籍,今天我們就用億速云在行業(yè)內累計的經驗做一個解答。

實驗環(huán)境

Nginx云服務器(192.168.13.177)
Tomcat1服務器(192.168.13.151)
Tomcat2服務器 (192.168.13.178)
client測試機

一,負載均衡

1,在Tomcat1,Tomcat2上安裝Tomcat服務

[root@tomcat1 ~]# systemctl stop firewalld.service  ##關閉防火墻
[root@tomcat1 ~]# mkdir /abc
[root@tomcat1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/
[root@tomcat1 ~]# cd /abc/tomcat/
[root@tomcat1 tomcat]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/  ##解壓JDK
[root@tomcat1 tomcat]# vim /etc/profile   ##配置環(huán)境變量
##大G末行加入
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@tomcat1 tomcat]# source /etc/profile  ##刷新配置文件
[root@tomcat1 tomcat]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/   ##解壓
[root@tomcat1 tomcat]# cd /usr/local/
[root@tomcat1 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/   
##將啟動和關閉腳本便于系統(tǒng)識別
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
[root@tomcat1 local]# mkdir -p /web/webapp1  ##創(chuàng)建站點
[root@tomcat1 local]# vim /web/webapp1/index.jsp   ##寫入jsp網頁內容
##jsp網頁內容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <% out.println("Welcome KGC Web");%>    ##輸出信息
 </body>
</html>
[root@tomcat1 local]# vim /usr/local/tomcat/conf/server.xml  ##修改Tomcat配置文件
            <Host name="localhost"  appBase="webapps"
                        unpackWARs="true" autoDeploy="true">
                <Context docBase="/web/webapp1" path="" reloadable="false">  ##添加站點信息
                </Context>
[root@tomcat1 ~]# startup.sh   ##啟動服務
##Tomcat上網頁內容為accp其他配置一樣

2,在Nginx服務器上安裝Nginx

[root@nginx ~]# systemctl stop firewalld.service    ##關閉防火墻
[root@nginx ~]# setenforce 0
[root@nginx ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y  ##安裝環(huán)境必要組件
[root@nginx ~]# mkdir /abc
[root@nginx ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/   ##掛載
Password for root@//192.168.100.3/LNMP-C7:  
[root@nginx ~]# cd /abc/
[root@nginx abc]# tar zxvf nginx-1.12.2.tar.gz -C /usr/local/  ##解壓
[root@nginx abc]# useradd -M -s /sbin/nologin nginx   ##創(chuàng)建系統(tǒng)用戶
[root@nginx abc]# cd /usr/local/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   ##編譯安裝 

3,修改Nginx配置文件

[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
 #keepalive_timeout  0;
        keepalive_timeout  65;

        #gzip  on;

        upstream tomcat-server {                             #添加地址池
                            server 192.168.13.151:8080 weight=1;
                            server 192.168.13.178:8080 weight=1;    
                        }

        server {
                listen       80;
.....省略
location / {
                        root   html;
                        index  index.html index.htm;
                        proxy_pass http://tomcat-server;         #添加代理,調用服務器地址池
                }
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  ##便于系統(tǒng)識別
[root@nginx nginx-1.12.2]# nginx   ##開啟服務

4,使用client測試機訪問nginx代理服務器

Nginx云服務器是如何實現負載均衡和動靜分離的
Nginx云服務器是如何實現負載均衡和動靜分離的

二,動靜分離

1,在Nginx上修改配置文件

[root@nginx nginx-1.12.2]# vim /etc/init.d/nginx  ##編寫service啟動腳本
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
    start)
        $PROG
        ;;
    stop)
        kill -s QUIT $(cat $PIDF)
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    reload)
        kill -s HUP $(cat $PIDF)
        ;;
    *)
                echo "Usage: $0 {start|stop|restart|reload}"
                exit 1
esac
exit 0
[root@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx 
[root@nginx nginx-1.12.2]# chkconfig --add nginx
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
server {
...省略...
     location ~.*.jsp$ {       ##匹配jsp頁面跳轉代理服務器池
         proxy_pass http://tomcat-server;
         proxy_set_header Host $host;
     }
            location / {
        root   html/test;   ##修改站點
        index  index.html index.htm;
        proxy_pass http://tomcat-server;
     }
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/html/index.html   ##編寫靜態(tài)網頁
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>靜態(tài)頁面</title>
<style>
body {
    width: 35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
    <h3>靜態(tài)頁面</h3>
    <p>這是個靜態(tài)頁面</p>
</body>
</html>
[root@nginx nginx-1.12.2]# service nginx stop    ##關閉開啟服務
[root@nginx nginx-1.12.2]# service nginx start

2,在Tomcat1,Tomcat2上創(chuàng)建jsp動態(tài)頁面

[root@tomcat1 ~]# mkdir /usr/local/tomcat/webapps/test
[root@tomcat1 ~]# vim /usr/local/tomcat/webapps/test/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="text/html; charset=UTF-8">
<title>動態(tài)頁面</title>
</head>
<body>
<div>動態(tài)頁面1</div>
</body>
</html>
##在Tomcat2上修改為動態(tài)頁面22
//訪問靜態(tài)
http://192.168.13.177/  
//訪問動態(tài)  
http://192.168.13.177/test/index.jsp

Nginx處理靜態(tài)圖片,Tomcat處理動態(tài)頁面

1,在Tomcat1,Tomcat2上頁面添加圖片

[root@tomcat1 ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<body>
    <div>動態(tài)頁面</div><br><img src="11.jpg"> //添加頁面圖片 
</body>
[root@tomcat01 local]# vim /usr/local/tomcat/conf/server.xml 
#在第149行下追加以下條目,
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="false">
</Context>
[root@tomcat1 test]# shutdown.sh    ##關閉重啟
[root@tomcat1 test]# startup.sh

2,在Nginx上修改配置文件

[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { 
     root html/test;
     expires 30d;
}
[root@nginx nginx-1.12.2]# mkdir /usr/local/nginx/html/test
[root@nginx nginx-1.12.2]# cp /abc/11.jpg /usr/local/nginx/html/test/
#重啟服務
[root@nginx html]# service nginx restart

3,使用client測試

Nginx云服務器是如何實現負載均衡和動靜分離的
Nginx云服務器是如何實現負載均衡和動靜分離的

看了以上關于Nginx云服務器是如何實現負載均衡和動靜分離的,如果大家還有什么地方需要了解的可以在億速云行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術工程師解答的,億速云技術工程師在行業(yè)內擁有十幾年的經驗了。

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI