[nginx] proxy cache 設定

有做過網頁速度優化的工程師,應該對於 cache 相當熟悉,適當的增加 cache 可以大幅地減少 server 的負擔。 甚至在後端我們也常用 redis 去 cache 一些常用或計算負擔較重的資料. 在使用 nodejs 做開發時,我們時常會需要使用到 web server 的 reverse proxy 功能。 這篇主要想記錄如何開啟 nginx 的 proxy_cache,減少 Reverse Proxy Server 打到後面的 web server 的 request 數量,也是類似於 varnish 所做的功能   找到 nginx.conf 檔案,預設會在 /etc/nginx/nginx.conf 設定 cache 檔案的存放位置及 expired 等資訊,這邊先以 my_cache 為 key 去更新 cache proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m; 在想套用的 […]

Continue reading


[nginx] 錯誤,client intended to send too large body

之前因為把機器上原本的 apache 的 web server 換成 nginx,遇到了這個錯誤  client intended to send too large body 查了一下資料發現造成的原因為 web server 接收 request body 的大小設定 apache: LimitRequestBody 預設為 0(unlimit) nginx: client_max_body_size 預設為 1m 根據以下步驟更改一下 nginx 設定,就沒問題了 vim /etc/nginx/nginx.conf sudo sercie nginx reload   參考資料: https://craftcms.stackexchange.com/questions/2328/413-request-entity-too-large-error-with-uploading-a-file

Continue reading


[nginx] 移除不必要的預設 header,”Server” 版本

預設安裝好 nginx 會有 web server 版本資訊的 header 如下圖   為了資訊安全上面的考量,建議將 /etc/nginx/nginx.conf 的 server_tokens off; 打開 這樣就不會在 header 顯示 nginx 的版本資訊。   如果你想進一步將此 header 完全移除掉的話,可以考慮裝 nginx 的更改 header module 這樣就可以設定 more_clear_headers Server; 移除此 header。   參考資料: https://serverfault.com/questions/214242/can-i-hide-all-server-os-info https://geekflare.com/wp-content/uploads/2016/05/nginx-default-header.png

Continue reading