node.js是一個基於chrome javascript運行時建立的平台, 用於方便地建立響應速度快、易於擴展的網路應用。 node.js 使用事件驅動, 非阻塞i/o 模型而得以輕量且高效,非常適合在分散式裝置上運行的資料密集型的即時應用,如即時聊天等等。然而對於gzip編碼,靜態文件,http緩存,ssl處理,負載平衡和反向代理等,都可以透過nginx來完成,從而減小node.js的負載,並透過nginx強大的快取來節省網站的流量從而提高網站的載入速度。
流程圖
#nginx配置如下:
http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; proxy_temp_path /var/tmp; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; gzip_comp_level 6; gzip_vary on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_buffers 16 8k; ssl_certificate /some/location/sillyfacesociety.com.bundle.crt; ssl_certificate_key /some/location/sillyfacesociety.com.key; ssl_protocols sslv3 tlsv1; ssl_ciphers high:!anull:!md5; upstream silly_face_society_upstream { server 127.0.0.1:61337; server 127.0.0.1:61338; keepalive 64; } server { listen 80; listen 443 ssl; server_name sillyfacesociety.com; return 301 $scheme://www.sillyfacesociety.com$request_uri; } server { listen 80; listen 443 ssl; server_name www.sillyfacesociety.com; error_page 502 /errors/502.html; location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { root /usr/local/silly_face_society/node/public; access_log off; expires max; } location /errors { internal; alias /usr/local/silly_face_society/node/public/errors; } location / { proxy_redirect off; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; proxy_set_header host $http_host; proxy_set_header x-nginx-proxy true; proxy_set_header connection ""; proxy_http_version 1.1; proxy_cache one; proxy_cache_key sfs$request_uri$scheme; proxy_pass http://silly_face_society_upstream; } } }
配置段說明
http { ... upstream silly_face_society_upstream { server 127.0.0.1:61337; server 127.0.0.1:61338; keepalive 64; } ... }
nginx負載平衡多個nodo.js實例。 keepalive 64 指示nginx在任何時候保持最少64個http/ 1.1連接到代理伺服器。如果有更多的流量nginx將開啟更多的連線。
http { ... server { ... location / { proxy_redirect off; 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_set_header connection ""; proxy_http_version 1.1; proxy_pass http://silly_face_society_upstream; } ... } }
將符合哪些的請求傳送到代理程式上。 nginx的符合規則可以取看看前面的文章。
nginx處理靜態內容
http { ... server { ... location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { root /usr/local/silly_face_society/node/public; access_log off; expires max; } ... } }
設定快取
http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; proxy_temp_path /var/tmp; ... } http { server { ... location / { ... proxy_cache one; proxy_cache_key sfs$request_uri$scheme; ... } ... } }
快取是透過http頭部來控制的。
helloworld
試驗一下,我們來寫個helloworld.js
var http = require('http'); http.createserver(function (request, response) { response.writehead(200, {'content-type': 'text/plain'}); response.end('hello world\n'); }).listen(61337); console.log('server running at http://127.0.0.1:61337/');
然後用node helloworld.js指令開啟,這樣跑在本地的機子的nodejs的程式就算開起來了,佔用的是8000端口,可自行修改。
此時確定在nginx的vhost.conf裡面的設定應有:
server { listen 80; server_name jb51.net.jb51.net; location / { proxy_pass http://127.0.0.1:61337; } }
將網站網域設定好,然後連接埠設定為80,最後proxy_pass設定為http:/ /127.0.0.1:61337,將所有從jb51.net:80的請求傳遞到nodejs程式去。
重啟nginx、造訪域名,就可以了看到helloworld了。
雖然node.js本身就可以做伺服器是沒錯啦,例如welcome.js裡面設定為80埠就可以了。
但是一個機子跑多個網站,其他網站又是用別的伺服器,在80埠已經被佔用的情況下,是可以用代理到別的埠來處理的。
以上是怎麼為Node.js程式配置使用Nginx伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

新年伊始,雷軍抖音跨年直播分享了2025年的三個新年願望,這場長達四個半小時的直播吸引了眾多關注。雷軍的三大願望分別是:第一,實現30萬輛汽車交付目標,緩解壓力,不再被進度追趕。第二,擁有更多旅行時間,欣賞各地美景、品嚐特色美食,並結合工作進行汽車測試。第三,堅持健身,計劃在健身房打卡100次,強身健體。雷軍在直播中坦言,2024年奔波於各地,行程安排緊湊,往往只能短暫停留,難以深入體驗當地文化。例如,在德國紐北賽道,他僅停留了8個小時。因此,在新的一年裡,他希望能夠更好地平衡工作與生活,在旅行

九號公司攜手品牌代言人易烊千璽打造的微電影《記憶奇旅》,在2024年榮獲多項權威媒體大獎,成為年度口碑佳作。這部作品以獨特的敘事風格、精湛的製作和真摯的情感,贏得了業界的高度讚譽。 2024年度獲獎榮譽:2024金觸點全球商業創新大獎-年度影視廣告2024中國廣告營銷大獎-娛樂營銷組銀獎2024TopDigital創新營銷獎-影視製作類金獎2024上海國際廣告節-微電影銀獎2024第十一屆中國創新傳播大獎-整合營銷類銀獎WISE2024商業之王-年度案例第31屆中國國際廣告節2024數字營銷實戰大

近日,PConline2024智臻科技獎正式揭曉,AGON愛攻QD-OLED電競顯示器AG326UD榮獲“年度技術創新”獎項。此項殊榮不僅代表了業界對其技術優勢與市場表現的高度認可,更充分體現了AGON愛攻在電競顯示器技術領域的創新能力和卓越成就。 01.瞰科技未來,品技術革命PConline智臻科技獎的權威含金量作為科技行業的風向標,PConline智臻科技獎憑藉其嚴謹的評審體系和深度的行業分析,成功贏得廣泛的行業認可。該獎項始終致力於表彰推動科技行業發展的優秀產品和品牌,涵蓋從技

SonyInteractiveEntertainment(SIE,索尼互动娱乐)首席架构师MarkCerny公开更多次世代主机PlayStation5Pro(PS5Pro)硬体细节,包括性能升级的AMDRDNA2.x架构GPU,以及与AMD合作代号「Amethyst」的机器学习/人工智慧计划。PS5Pro性能提升的重点仍集中在更强大的GPU、先进的光线追踪与AI驱动的PSSR超解析度功能等3大支柱上。GPU採用客制化的AMDRDNA2架构,索尼将其命名为RDNA2.x,它拥有部分RDNA3架构才

微軟針對Windows搜索功能的改進,目前已在歐盟地區部分WindowsInsider頻道展開測試。此前,整合後的Windows搜索功能飽受用戶詬病,體驗欠佳。此次更新將搜索功能拆分為本地搜索和基於Bing的網絡搜索兩部分,以提升用戶體驗。新版搜索界面默認進行本地文件搜索,如需進行網絡搜索,需點擊“MicrosoftBingWebSearch”標籤進行切換。切換後,搜索欄將顯示“MicrosoftBingWebSearch:”,用戶可在此輸入關鍵詞。此舉有效避免了本地搜索結果與Bing搜索結果混

為慶祝卡普空《怪物獵人》系列20週年,寶島社推出了一款別具匠心的雜誌套裝——《怪物獵人》主題燒烤計時器及隨行杯。該套裝將於12月27日在日本全國全家便利店發售,售價3498日元。這款雜誌套裝最大的亮點在於其互動式燒烤計時器,完美復刻了系列遊戲中的經典燒烤場景。計時器採用舊版烤肉工具的設計,配有LED火焰燈效和遊戲BGM,讓您在實際燒烤過程中也能體驗到狩獵的樂趣。旋轉手柄模擬翻轉烤肉,成功烤熟後更會播放“烤好了!”的語音提示。計時器尺寸約為9.5cm(高)x10.7cm(寬)x8cm(深),內置L

小米汽車一周年慶典,為車主送上新年大禮!繼去年交付量突破13萬輛後,小米汽車官方微博宣布,將為每位小米SU7車主及準車主贈送雷軍經典語錄“AreyouOK?”主題氣門芯帽,數量有限,免費領取!活動時間:2024年12月28日下午4點至2025年1月20日23:59:59。在2024年12月31日23:59:59前購車或完成訂單的用戶,即可免費獲得一套四件套“AreyouOK?”氣門芯帽。這款氣門芯帽於今年9月首發,採用亮黃色PVC和黃銅材質製成,黃銅芯直接嵌入,確保行駛安全,不易脫落。用途廣泛,

據報導,HDMI2.2標準有望在2025年CES展會前夕正式發布,HDMIForum計劃於1月6日公佈這一新一代視頻信號傳輸協議規範。 2017年發布的HDMI2.1標準,最大帶寬為48Gbps,支持4K144Hz和8K30Hz視頻傳輸,結合DSC技術最高可達10K120Hz。預計HDMI2.2將大幅提升帶寬,支持更高分辨率和刷新率,並採用新型線材。雖然具體規格尚未公開,但HDMI2.2勢必超越HDMI2.1的48Gbps帶寬和10240*4320分辨率限制。鑑於DisplayPort2.1在20


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。