首頁 > 軟體

關於Nginx動靜分離詳解以及設定

2023-09-16 06:01:21

1.Nginx動靜分離概念

動靜分離,通過中介軟體將動態請求和靜態請求進行分離,分離資源,減少不必要的請求消耗,減少請求延時。

好處:動靜分離後,即使動態服務不可用,但靜態資源不會受到影響

通過中介軟體可以將動態請求和靜態請求進行分離

2.Nginx動靜分離應用案例

2.1.環境規劃

系統服務服務地址
centos7.5負載均衡Nginx proxy192.168.81.210
centos7.5靜態資源Nginx static192.168.81.220
centos7.5動態資源Tomcat server192.168.81.230

2.2.設定靜態資源

1.建立動靜分離組態檔
[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# vim ds.conf
#動靜分離
server {
	listen 80;
	server_name ds.com;
	
	location / {
		root /web;
		index index.html;
	}
	
	location ~* .*.(png|jpg|gif)$ {
		root /web/images;
	}
}

2.過載Nginx
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl reload nginx

3.準備圖片
[root@localhost conf.d]# mkdir /web/images
[root@localhost conf.d]# wget -O /web/images/nginx.png http://nginx.org/nginx.png

2.3.設定動態資源

1.編譯安裝tomcat
[root@localhost soft]# tar xf apache-tomcat-7.0.92.tar.gz  -C /application/

2.寫入動態檔案
[root@localhost soft]# cd /application/
[root@localhost application]# vim apache-tomcat-7.0.92/webapps/ROOT/java_test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML>
    <HEAD>
        <TITLE>JSP Test Page</TITLE>
    </HEAD>
    <BODY>
      <%
        Random rand = new Random();
        out.println("<h1>Random number:</h1>");
        out.println(rand.nextInt(99)+100);
      %>
    </BODY>
</HTML>

3.啟動服務
[root@localhost application]# cd apache-tomcat-7.0.92/
[root@localhost apache-tomcat-7.0.92]# ./bin/startup.sh

2.4.整合動靜分離

2.4.1.設定動靜分離負載均衡

[root@localhost conf.d]# vim lb_ds.conf
#整合動靜分離
upstream static_photo {
        server 172.16.1.20:80;
}

upstream java {
        server 172.16.1.30:8080;
}

server {
        listen 80;
        server_name ds.com;
        access_log /nginx_log/lb_ds_access.log main;

        location / {
                root /web/ds;
                index index.html;
        }

        location ~* .*.(jpg|png|gif)$ {
                proxy_pass http://static_photo;
                proxy_set_header HOST $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ~* .jsp$ {
                proxy_pass http://java;
                proxy_set_header HOST $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

2.4.2.編寫整合動靜分離程式碼

[root@localhost conf.d]# vim /web/ds/index.html
<html lang="en">
<head>
        <meta charset="UTF-8" />
        <title>測試動靜分離</title>
        <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
        $.ajax({
        type: "GET",
        url: "http://ds.com/java_test.jsp",
        success: function(data) {
                $("#get_data").html(data)
        },
        error: function() {
                alert("fail!!,請重新整理再試");
        }
        });
});
</script>
        <body>
                <h1>測試動靜分離</h1>
                <h1>上面為靜態圖片,下面為動態頁面</h1>
                <img src="http://ds.com/nginx.png">
                <div id="get_data"></div>
        </body>
</html>

2.5.效果

看著是一個頁面實則不同機器在做處理

到此這篇關於關於Nginx動靜分離詳解以及設定的文章就介紹到這了,更多相關Nginx動靜分離詳解內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com