Nginx的应用之动静分离
生活随笔
收集整理的這篇文章主要介紹了
Nginx的应用之动静分离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Nginx 的動靜分離
我們通過中間件將動態請求和靜態請求進行分離,減少了不必要的請求消耗和延時。
動靜分離后,即使動態服務不可用,但靜態資源不會受到影響。
應用實例
1、準備環境
| CentOS 7.2 | 反向代理 | Nginx_Proxy | 192.168.1.10 | Nginx:v1.16.1 |
| CentOS 7.2 | 靜態資源 | Nginx_Static | 192.168.1.11 | Nginx:v1.16.1 |
| CentOS 7.2 | 動態資源 | Tomcat_Server | 192.168.1.12 | Tomcat/7.0.76 |
2、配置服務器
2.1、在Nginx Static主機中配置靜態資源(以圖片為例)
[root@Nginx_Static]# vim /etc/nginx/conf.d/static.conf server {listen 80;server_name static.com;root /data/www/static;index index.html;location ~* .*\.(png|jpg|gif)$ {root /data/www/static/images;} } #準備存放圖片的目錄及圖片 [root@Nginx_Static]# mkdir -pv /data/www/static/images [root@Nginx_Static]# wget -O /data/www/static/images/nginx.png http://nginx.org/nginx.png [root@Nginx_Static]# systemctl restart nginx2.2、在 Tomcat_Server主機中配置動態資源(以隨機數為例)
#安裝Tomcat,并編輯隨機數的jsp文件 [root@Tomcat_Server]# yum -y install tomcat [root@Tomcat_Server]# mkdir /usr/share/tomcat/webapps/ROOT [root@Tomcat_Server]# vim /usr/share/tomcat/webapps/ROOT/java.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>#重啟tomcat服務 [root@Tomcat_Server]#2.3、在Nginx_Proxy主機上配置代理,實現訪問jsp和png
[root@Nginx_Proxy]# vim /etc/nginx/conf.d/proxy.conf upstream static {server 192.168.1.11:80; } upstream java {server 192.168.1.12:8080; }server {listen 80;server_name proxy.com;location / {root /data/www/whole;index index.html;}location ~ .*\.(png|jpg|gif)$ {proxy_pass http://static;}location ~ .*\.jsp$ {proxy_pass http://java;} } #重啟nginx [root@Nginx_Proxy]# systemctl restart nginx2.4、通過代理服務器測試訪問動態及靜態資源
2.5、在Nginx_Proxy主機上將動態和靜態資源合并為html文件
[root@Nginx_Proxy]# mkdir /data/www/whole [root@Nginx_Proxy]# vim /data/www/whole/index.html <html lang="en"> <head><meta charset="UTF-8" /><title>測試ajax和跨域訪問</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://proxy.com/java.jsp",success: function(data) {$("#get_data").html(data)},error: function() {alert("fail!!,請刷新再試!");}}); }); </script><body><h1>測試動靜分離</h1><img src="http://proxy.com/nginx.png"><div id="get_data"></div></body> </html>2.6、使用瀏覽器測試訪問,動態及靜態資源能否加載在一個html文件中
2.7、關閉靜態資源的nginx服務后,發現靜態內容無法訪問,但動態內容可以正常瀏覽
2.8、關閉動態資源的tomcat服務后,發現動態內容無法訪問,但靜態內容可以正常瀏覽
轉載于:https://www.cnblogs.com/Smbands/p/11415727.html
總結
以上是生活随笔為你收集整理的Nginx的应用之动静分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 概率论与数理统计浙大第五版 第一章 部分
- 下一篇: 后端技术:Nginx从安装到高可用,看完