亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

提升 Node.js 應用性能的 5 個技巧

發布時間:2020-07-15 16:26:44 來源:網絡 閱讀:319 作者:Hjiangxue 欄目:web開發

Node.js是全球領先的用JavaScript——世界上最流行的編程語言創建服務器應用程序的工具。提供web服務器和應用服務器的功能,Node.js被認為是各種以微服務為基礎的開發和交付的關鍵工具。

Node.js可以替代或增強Java和.NET用于后端應用程序的開發。

Node.js是單線程的,并且使用非阻塞I / O,允許它擴展并支持數以萬計的并行操作。它和NGINX共享這些架構特性,并解決C10K問題——支持超過10000個并發連接——NGINX也可以解決并行操作問題。 Node.js以它的高性能和高開發效率享譽全球。

那么,哪里會出問題呢?

Node.js有一些薄弱環節和漏洞,這些薄弱環節和漏洞會使得基于Node的系統容易出現性能不佳,甚至崩潰的現象。尤其是當基于Node.js的web應用程序碰到訪問量高速增長的時候,問題就會出現得更加頻繁。

此外,Node.js是用于創建和運行產生核心可變網頁內容邏輯的強大工具。但它在服務靜態內容——例如圖像和JavaScript文件——以及平衡多個服務器上的負載這些方面還沒那么強大。

為了最有效地使用Node.js,你需要緩存靜態內容,代理和平衡多個應用程序服務器負載,并管理客戶端、Node.js和助手——如運行Socket.IO的服務器——之間的端口競爭。 NGINX可用于解決這些問題,從而使得它成為了一個Node.js性能優化的偉大工具。

使用這些技巧可以提高Node.js應用性能:

  1. 實現反向代理服務器
  2. 緩存靜態文件
  3. 多服務器的負載均衡
  4. 代理WebSocket連接
  5. 實現SSL / TLS和HTTP / 2

注:Node.js應用性能的快速解決辦法是修改你的Node.js配置,以充分利用現代多核服務器的優勢。你也可以讀一讀另一篇關于如何讓Node.js生成單獨子進程的文章。

1.實現反向代理服務器

我們在NGINX.Inc的時候,如果看到有應用程序服務器直接接觸傳入的訪問流量,用于高性能網站核心的時候,總會不自覺地有點擔憂。這包括許多基于WordPress的網站,也包括Node.js網站。

Node.js專為可擴展性而設計,它比大多數應用服務器更易于擴展,它的web服務器端可以處理好大量的訪問流量。但是web服務并不是Node.js存在的理由——Node.js并不是因為這個目的而被構建的。

如果你有一個大流量網站,提高應用程序性能的第一步是在你的Node.js服務器前放一個反向代理服務器。這樣可以保護Node.js服務器直接接觸外部訪問流量,還能讓你靈活使用多個應用程序服務器,平衡負載服務器,緩存內容。

提升 Node.js 應用性能的 5 個技巧

在現有的服務器設置前放NGINX作為一個反向代理服務器,是NGINX的核心用例,全世界各地已經有數以千萬計的網站實施了。

使用NGINX作為Node.js的反向代理服務器還有一些特定的優勢,其中包括:

  • 簡化操作權限和端口分配
  • 更有效地服務于靜態圖像(見第二個小竅門)
  • 成功管理Node.js崩潰的情況
  • 減輕DoS***

注意:這些教程介紹了如何使用NGINX作為在Ubuntu 14.04或CentOS環境中的反向代理服務器,而且可以總覽NGINX置于node.js之前的整體情況。

2.緩存靜態文件

隨著基于Node.js的網站的使用量的增長,服務器的壓力開始越來越大。這時候你要做這兩件事情:

  1. 充分利用Node.js服務器。
  2. 使得添加應用程序服務器和負載均衡變得容易。

這其實是很容易做到的。一開始就實施NGINX作為反向代理服務器,就像第一點技巧中所描述的那樣。這樣就能輕易實現高速緩存、負載平衡(如果有多個Node.js服務器的話)等。

針對Modulus,一個應用程序容器平臺,有一篇非常有用的關于利用NGINX增壓Node.js應用程序性能的文章。由于Node.js都是靠自己完成所有的工作的,所以我們的網站平均每秒只能服務將近900個請求。使用NGINX作為反向代理服務器,提供靜態內容,一個站點每秒可服務超過1600個請求——性能提升了近2倍。

性能的提升能讓你有時間采取額外措施以適應進訪問量的增長,如審查(或提高)網站設計,優化程序代碼,部署更多的應用程序服務器。

以下配置代碼適用運行于Modulus的網站:

server {
  listen 80;
  server_name static-test-47242.onmodulus.net;
  root /mnt/app;
  index index.html index.htm;
  location /static/ {
   try_files $uri $uri/ =404;
  }
  location /api/ {
   proxy_pass http://node-test-45750.onmodulus.net;
  }
}

例如,在Nginx位置塊中,你可能不想要緩存某些內容。例如,你通常不會想要緩存博客平臺的管理界面的。以下就是禁用[或免除]緩存Ghost管理界面的配置代碼:

location ~ ^/(?:ghost|signout) { 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://ghost_upstream;
        add_header Cache-Control "no-cache, private, no-store,
        must-revalidate, max-stale=0, post-check=0, pre-check=0";
    }

緩存NGINX服務器上的靜態文件可以顯著減輕Node.js應用程序服務器的負載,讓它能夠達到更佳性能。

本次給大家推薦一個免費的學習群,里面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。**獲取資料

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴业县| 库车县| 永昌县| 广西| 清徐县| 富阳市| 广平县| 康平县| 宿迁市| 遂溪县| 呼玛县| 仙桃市| 礼泉县| 哈巴河县| 沭阳县| 柳江县| 白玉县| 长武县| 灵武市| 千阳县| 瓮安县| 阳朔县| 于都县| 万安县| 唐海县| 琼结县| 昭觉县| 惠安县| 澄城县| 定南县| 连山| 镇江市| 措美县| 漠河县| 洛隆县| 青浦区| 阆中市| 德清县| 博罗县| 天全县| 油尖旺区|