共計 1481 個字符,預計需要花費 4 分鐘才能閱讀完成。
nginx 靜態文件緩存及 nginx 上傳文件大小限制。nginx 的一大功能就是完成靜態資源的分離部署,減輕后端服務器的壓力,如果給這些靜態資源再加一級 nginx 的緩存,可以進一步提升訪問效率。Nginx 通過異步非阻塞的事件處理機制,Nginx 實現由進程循環處理多個準備好的事件,從而實現高并發和輕量級。我們通過 nginx 靜態資源緩存,可以有效的解決 web 訪問慢的問題。
前言:
Nginx 是異步框架的網頁服務器,也可以用作反向代理、負載平衡器和 HTTP 緩存。
nginx 靜態文件緩存:
一個網站包含動態頁面和靜態資源,其中靜態資源包含 html,js,css 等,Nginx+tomcat 可以實現動靜分離,以降低 tomcat 的壓力,這里將通過 nginx 的緩存功能將業務網頁中的靜態資源文件緩存,當請求靜態資源時,直接由 nginx 返回。具體配置如下:
##cache##
proxy_connect_timeout 500;
# 跟后端服務器連接的超時時間_發起握手等候響應超時時間
proxy_read_timeout 600;
# 連接成功后_等候后端服務器響應的時間_其實已經進入后端的排隊之中等候處理
proxy_send_timeout 500;
# 后端服務器數據回傳時間_就是在規定時間內后端服務器必須傳完所有數據
proxy_buffer_size 128k;
# 代理請求緩存區_這個緩存區間會保存用戶的頭信息以供 Nginx 進行規則處理_一般只要能保存下頭信息即可
proxy_buffers 4 128k;
# 同上 告訴 Nginx 保存單個用的幾個 Buffer 最大用多大空間
proxy_busy_buffers_size 256k;
# 如果系統很忙的時候可以申請更大的 proxy_buffers 官方推薦 *2
proxy_temp_file_write_size 128k;
#proxy 緩存臨時文件的大小
proxy_temp_path /usr/local/nginx/temp;
# 用于指定本地目錄來緩沖較大的代理請求
proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
# 設置 web 緩存區名為 cache_one, 內存緩存空間大小為 200M,自動清除超過 1 天沒有被訪問過的緩存數據,硬盤緩存空間大小 30g
# 這里配置的需要緩存的靜態資源后綴名
location ~* “\.(jpg|jpeg|png|gif|html|css|js|woff2|woff|map)?$” {
proxy_pass http://api;
proxy_cache cache_one;
proxy_cache_valid 200 24h; #200 狀態緩存 24 小時
proxy_cache_valid 302 10m; #302 狀態緩存 10 分鐘
proxy_set_header Host $host;
expires -1;
add_header X-Cache-Status $upstream_cache_status; #在 http 頭部增加一個字 > 段顯示是否命中緩存
}
nginx 上傳文件大小限制
當我們的 web 服務提供文件上傳功能,并且前端的請求需要經過 nginx 代理時,就需要對 nginx 上傳文件大小進行設置,因為默認的 nginx 上傳文件大小限制在 1m,那么要如何設置上傳文件大小呢?
使用如下配置:
# 如下配置設置了請求體的最大為 10m, 同理,請求體中的二進制文件大小沒有超過這個就不會報錯了。
client_max_body_size 10m;