nginx如何實現動靜分離?
動靜分離
動靜分離是根據一定規則把靜態文件(html、css、js、jpg等)和動態文件(jsp,.do等)區分開來,采用靜態文件和動態文件分開部署,以提高用戶訪問靜態文件的速度,降低對后臺應用的訪問,提高服務器響應速度和性能。靜態文件由Nginx服務器處理,直接獲取磁盤文件,動態文件轉發到應用服務器中處理,如Tomcat。
創建靜態文件目錄[root@192 ~]# mkdir /soft/code/static/
將css、jpg文件上傳至/soft/code/static目錄中,如下圖所示:
配置Nginxupstream test {ip_hash;server 192.168.0.105:80;}server {listen 80;server_name 192.168.137.128;#靜態資源配置location /static/ {root /soft/code/;autoindex on;}#動態資源配置location /example {proxy_pass http://test;proxy_redirect default;}}
查看靜態文件目錄測試文件nginx.css文件:
/* 字體居中標紅 */p{ text-align:center; color:red;}
nginx.html文件:
<!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"><link rel="stylesheet" href="/static/nginx.css" type="text/css" /><title>動態分離</title></head><body><p>Dynamic and static separation demo!</p><img src = "/static/nginx.jpg"/></body></html>
頁面測試將nginx.html文件放在Tomcat服務器中,啟動Tomcat服務,訪問http://nginx_ip:port/example/nginx.html,如下圖所示:
注意事項root 指定目錄的上級目錄,并且該上級目錄要含有locatoin指定名稱的同名目錄。#訪問/static/目錄下的文件時,Nginx會去/soft/code/static/目錄下找文件。location /static/ { root /soft/code/; #列出整個目錄 autoindex on; }
修改nginx.conf文件時,要重啟Nginx。Nginx啟動命令:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Nginx重啟命令:
/usr/local/nginx/sbin/nginx -s reload
Nginx停止命令:
/usr/local/nginx/sbin/nginx -s stop
Nginx錯誤日志查看[root@192 ~]# cd /usr/local/nginx/logs/
[root@192 logs]# tail -f error.log
如果解決了你的疑惑,請點點關注和評論,謝謝大家支持。
正春華枝俏,待秋實果茂,與君共勉。