摘要:接著上一篇在同一臺服務器上配置和多個應用,這里記錄下在下給配置靜態代理和文件壓縮。目的為了減少對靜態文件的處理和加快前端下載靜態資源的速度,決定使用做靜態代理,并且對其進行壓縮。最后對比發現這里的值在配置文件中沒有包含為,而中配置的為
目的接著上一篇在同一臺服務器上配置app1.domain.com和app2.domain.com多個web應用,這里記錄下在nginx下給express web app配置靜態代理和文件壓縮。
為了減少node.js對靜態文件的處理和加快前端下載靜態資源的速度,決定使用nginx做靜態代理,并且對其進行gzip壓縮。(為什么不使用express的compression中間,請移步:生產環境最佳實踐:性能和可靠性)
靜態文件代理 express項目結構以上一篇中的blog應用為例,blog的express項目結構如下,所有的靜態資源,例如js, css, font, image等都放在static目錄下
- blog - dist - static - images - javascripts - stylesheets - fonts - font-awesome - ... - src - ...
頁面上所有引用資源時都是static/XXX/XXX/XXX.XXX
修改blog應用的nginx配置文件blog的配置文件路徑/etc/nginx/jackyang.me/blog.conf:
upstream blog.jackyang.me { server 127.0.0.1:3000; keepalive 8; } server { listen 0.0.0.0:80; server_name blog.jackyang.me; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://blog.jackyang.me/; proxy_redirect off; } # new config lines for static files proxy location /static/ { root /var/www/jackyang.me/blog; } }
/static/的配置告訴nginx:碰到static/開頭的任何請求,如:blog.jackyang.me/static/images/demo.png,都會去/var/www/jackyang.me/blog/static/目錄下去找。
重啟nginxsudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重啟nginx,查看express的log,你將不會看到關于那些靜態文件的GET請求。
開啟gzip 修改blog應用的nginx配置文件gzip可以配置在http, server, location作用域下,我這里是只為blog.jackyang.me配置,所以將其放在/etc/nginx/jackyang.me/blog.conf中:
upstream blog.jackyang.me { server 127.0.0.1:3000; keepalive 8; } server { listen 0.0.0.0:80; server_name blog.jackyang.me; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://blog.jackyang.me/; proxy_redirect off; } # new config lines for gzip gzip on; gzip_min_length 1k; gzip_buffers 4 8k; gzip_http_version 1.1; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; location /static/ { root /var/www/jackyang.me/blog; } }
這里給了一個簡單的配置,關于更多gzip的配置屬性信息請查看官方文檔
重啟nginxsudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
打開瀏覽器訪問頁面,在調試工具中可以看到對應MINE類型的資源的response header中被標記gzip。
(自己在配置時碰到問題,css被gzip而javascript沒有。最后對比發現這里的Content-Type值在配置文件gzip_types中沒有包含:content-type為application/javascript,而gzip_types中配置的為application/x-javascript)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39243.html
摘要:上一章了解了的基礎理論與配置,這一章將介紹在各種不同場景下的不同使用方法一靜態資源服務靜態資源類型非服務器動態運行生成的文件,換句話說,就是可以直接在服務器上找到對應文件的請求瀏覽器端渲染圖片視頻文件,任意下載文件靜態資源服務場景什么是例 上一章了解了nginx的基礎理論與配置,這一章將介紹nginx在各種不同場景下的不同使用方法 一、靜態資源WEB服務 1.靜態資源類型 非服務器動態...
閱讀 1535·2021-09-22 15:35
閱讀 2014·2021-09-14 18:04
閱讀 884·2019-08-30 15:55
閱讀 2458·2019-08-30 15:53
閱讀 2685·2019-08-30 12:45
閱讀 1209·2019-08-29 17:01
閱讀 2584·2019-08-29 15:30
閱讀 3521·2019-08-29 15:09