国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Nginx服務(wù)器“秘籍”

2018-05-25 07:37劉旻昊
中國(guó)傳媒科技 2018年4期
關(guān)鍵詞:鑒權(quán)限流秘籍

文/劉旻昊

新采編發(fā)系統(tǒng)是由新華社技術(shù)局主持研發(fā),服務(wù)于新華社全社新聞采編報(bào)道日常業(yè)務(wù)的新一代新聞采編系統(tǒng),是2016年實(shí)施的新華全媒工程的重要組成,該系統(tǒng)提供信息匯聚、報(bào)道策劃、全媒生產(chǎn)、產(chǎn)品發(fā)布等四大類(lèi)主要功能。面對(duì)業(yè)務(wù)需求變化快、運(yùn)維工作日趨復(fù)雜、IT運(yùn)維技術(shù)換代快等挑戰(zhàn),按照“要遵循新聞傳播規(guī)律和新興媒體發(fā)展規(guī)律,運(yùn)用互聯(lián)網(wǎng)技術(shù)體系,提升技術(shù)人員對(duì)先進(jìn)技術(shù)的自主掌控能力”的。

這就是新華全媒工程選擇Nginx作為Web服務(wù)器的主要原因。作為一個(gè)草根出身的軟件,Nginx在業(yè)界的鼎鼎大名也許你并不陌生。十多年前,它剛一誕生就出手不凡,很好地解決了傳統(tǒng)Web服務(wù)器Apache無(wú)法hold住的C10K的問(wèn)題(即一臺(tái)物理服務(wù)器達(dá)到并發(fā)量1萬(wàn)的時(shí)候,Apache就會(huì)承受不了)。

如今,在新華社新一代技術(shù)系統(tǒng)架構(gòu)中,Nginx作為接入層的重要環(huán)節(jié)扮演了至關(guān)重要的角色,通過(guò)自主掌控Nginx軟件的安裝配置,靈活運(yùn)用各種內(nèi)置、第三方模塊及自定義lua腳本,不僅可以完成基本的代理轉(zhuǎn)發(fā)和軟負(fù)載,還能通過(guò)對(duì)流量的多種控制處理實(shí)現(xiàn)認(rèn)證鑒權(quán)、SSL卸載、限速分流、接入審計(jì)等功能,以滿(mǎn)足用戶(hù)和應(yīng)用系統(tǒng)的多種需求。

Nginx是一款開(kāi)源免費(fèi)的HTTP和反向代理服務(wù)器,它由俄羅斯人伊戈?duì)枴と饕蚓帉?xiě),最早發(fā)布于2004年。十多年來(lái),由于其出色的性能,Nginx在互聯(lián)網(wǎng)突飛猛進(jìn)的時(shí)代里飛速發(fā)展,根據(jù)W3Techs網(wǎng)站的報(bào)告,目前全球TOP 1000的網(wǎng)站中有接近六成在使用Nginx,包括Netflix, Dropbox, Wikipedia等,而排名第二的Apache僅占16.5%。Nginx最突出的特性包括高并發(fā)、輕量級(jí)、穩(wěn)定,這得益于它使用異步、非阻塞、事件驅(qū)動(dòng)的方式處理請(qǐng)求,測(cè)試顯示它能處理高達(dá)Apache4倍之多的并發(fā)請(qǐng)求量,同時(shí)使用的內(nèi)存資源卻遠(yuǎn)低于Apache。

要使用Nginx,第一步要掌握Nginx的安裝:

在安裝Nginx之前,首先要安裝3個(gè)依賴(lài)軟件包:PCRE正則表達(dá)式庫(kù),zlib壓縮庫(kù)和OpenSSL加密工具集,Nginx的配置、壓縮和ssl功能中需要用到這些軟件。

安裝Nginx包括3步,配置、編譯和安裝,首先需要在Nginx官網(wǎng)http://nginx.org/下載源碼包,一般建議使用穩(wěn)定版(Stable Version)。

圖1 全球Web服務(wù)器排名

在配置階段,由于Nginx使用高度模塊化的架構(gòu)設(shè)計(jì),需要手動(dòng)設(shè)置各個(gè)模塊的開(kāi)關(guān)選項(xiàng)。對(duì)于默認(rèn)關(guān)閉的Nginx內(nèi)置模塊,可以使用--with-module_name的方式開(kāi)啟開(kāi)關(guān),對(duì)于第三方模塊,可以使用--add-module=/path/to/module的方式加以集成。

啟用一些常用的內(nèi)置模塊的配置如下:

●--with-stream 四層協(xié)議轉(zhuǎn)發(fā)

●--with-http_ssl_module 支持https

●--with-http_gzip_static_module Gzip 靜態(tài)模塊

●--with-http_geoip_module GeoIP 模塊

●--with-http_flv_module 為FLV文件提供服務(wù)端偽流媒體支持

●--with-http_stub_status_module 狀態(tài)信息頁(yè)

Nginx有大量的第三方模塊,官網(wǎng)上提供了所有第三方模塊的清單:https://www.nginx.com/resources/wiki/modules/index.html,一些常用的第三方模塊包括:

●nginx_upstream_check_module 主動(dòng)健康檢查

●nginx-sticky-module 會(huì)話(huà)保持

●ngx_log_if 日志過(guò)濾

使用make和make install,就完成編譯安裝了。

安裝完成后,還需要掌握Nginx的基本控制命令:

●nginx 啟動(dòng)nginx

●nginx -s stop 立刻停止

●nginx -s quit 溫柔停止

●nginx -s reload 重載配置文件

了解完安裝和基本控制,來(lái)看看Nginx具體能扮演哪些角色吧:

1.反向代理

應(yīng)用部署好了,如何讓用戶(hù)能訪(fǎng)問(wèn)到呢?這正是Nginx反向代理的用武之地,用戶(hù)通過(guò)域名訪(fǎng)問(wèn)的請(qǐng)求到達(dá)Nginx服務(wù)器后,Nginx可以根據(jù)域名和路徑區(qū)分這些請(qǐng)求并轉(zhuǎn)發(fā)給不同的后端服務(wù)器集群,即使用戶(hù)無(wú)法通過(guò)網(wǎng)絡(luò)直達(dá)這些后端服務(wù)器。Nginx四層和七層的代理分別使用ngx_stream_proxy_module和ngx_http_proxy_module模塊,都用proxy_pass URL的方式配置實(shí)現(xiàn)。

2.負(fù)載均衡

應(yīng)用服務(wù)器出問(wèn)題了怎么辦?不要緊,將Nginx用做軟負(fù)載,能夠?qū)⒂绊懗潭冉档椭磷畹?。Nginx可以提供靈活多變的負(fù)載配置,包括輪詢(xún)、加權(quán)輪詢(xún)、IP哈希、主備等,用于滿(mǎn)足多樣的需求。此外,還可以通過(guò)集成nginx_upstream_check_module第三方模塊,進(jìn)一步實(shí)現(xiàn)基于tcp和http的主動(dòng)健康檢查,讓Nginx的負(fù)載均衡能力如虎添翼。

3.訪(fǎng)問(wèn)控制

并非所有的系統(tǒng)都全部面向互聯(lián)網(wǎng)開(kāi)放,有的系統(tǒng)只允許辦公網(wǎng)絡(luò)訪(fǎng)問(wèn),還有的系統(tǒng)里某些頁(yè)面可以對(duì)互聯(lián)網(wǎng)開(kāi)放,其他頁(yè)面則僅允許特定的內(nèi)部IP訪(fǎng)問(wèn),面對(duì)這些細(xì)粒度的訪(fǎng)問(wèn)控制需求,通過(guò)使用ngx_http_access_module模塊,Nginx可以提供基于七層的靈活的黑白名單方式配置訪(fǎng)問(wèn)控制策略。

4.認(rèn)證鑒權(quán)

有些應(yīng)用系統(tǒng)想要加把鎖,輸入正確的用戶(hù)名密碼才能訪(fǎng)問(wèn),nginx默認(rèn)自帶的認(rèn)證模塊就可以實(shí)現(xiàn),通過(guò)ngx_http_auth_basic_module模塊,結(jié)合htpasswd命令生成用戶(hù)名及對(duì)應(yīng)密碼數(shù)據(jù)庫(kù)文件,Nginx可以很輕松地實(shí)現(xiàn)這種認(rèn)證。另一種認(rèn)證方式也很流行,Nginx+Lua(類(lèi)似Openresty)可以讓用戶(hù)在訪(fǎng)問(wèn)業(yè)務(wù)系統(tǒng)之前先通過(guò)統(tǒng)一的用戶(hù)認(rèn)證系統(tǒng)登錄、過(guò)濾并鑒權(quán)。

5. SSL卸載

近年來(lái),HTTPS逐漸取代HTTP成為傳輸協(xié)議界的新寵,眾多互聯(lián)網(wǎng)網(wǎng)站開(kāi)始從HTTP切換到HTTPS,以實(shí)現(xiàn)加密、可信訪(fǎng)問(wèn)。Nginx的 ngx_http_ssl_module模塊對(duì)https提供了必要的支持,想要實(shí)施HTTPS的網(wǎng)站可以將證書(shū)安裝在Nginx服務(wù)器上,由Nginx進(jìn)行ssl密文數(shù)據(jù)流的卸載。

6.限速限流

當(dāng)遇到真實(shí)的流量遠(yuǎn)遠(yuǎn)大于系統(tǒng)測(cè)試的可承載流量時(shí),一方面可能讓系統(tǒng)垮掉,另一方面可能擁堵出口帶寬,這時(shí)就必須進(jìn)行限流。限流是從上到下貫穿整個(gè)應(yīng)用的,接入層作為最外面的屏障,需要做好整個(gè)系統(tǒng)的限流。對(duì)于Nginx來(lái)講,限流有多種方式,可以使用ngx_http_core_module核心模塊對(duì)連接數(shù)進(jìn)行限制,也可以對(duì)訪(fǎng)問(wèn)頻率進(jìn)行限制,還可以啟用過(guò)載保護(hù)sysgurad模塊。

7.接入審計(jì)

可以通過(guò)搭建ELK平臺(tái)收集和分析接入層Nginx日志,實(shí)現(xiàn)可視化的接入審計(jì)及分析平臺(tái),消息隊(duì)列可以采用Redis或Kafka。

除了上述種種應(yīng)用場(chǎng)景,Nginx還有一個(gè)運(yùn)維人員不可不知的炫酷操作——平滑升級(jí)。作為一個(gè)互聯(lián)網(wǎng)軟件,Nginx版本迭代升級(jí)比較頻繁,對(duì)運(yùn)維人員來(lái)說(shuō),為了享受新版本的新特性,免不了要對(duì)生產(chǎn)環(huán)境的Nginx進(jìn)行版本升級(jí),而平滑升級(jí)操作可以在業(yè)務(wù)毫無(wú)感知的情況下完成,運(yùn)維人員只需在備份并替換sbin目錄下的可執(zhí)行文件后,使用kill -s USR2 `cat /path/to/nginx.pid`命令,讓Nginx開(kāi)始新舊版本并行運(yùn)行,隨后再優(yōu)雅退出舊進(jìn)程即可。

看到這里,你有沒(méi)有躍躍欲試了呢,快去體驗(yàn)一下這款Web服務(wù)器神器吧。

猜你喜歡
鑒權(quán)限流秘籍
限流值可調(diào)的雙門(mén)限限流保護(hù)電路設(shè)計(jì)
10 kV磁偏置超導(dǎo)限流器限流阻抗特性實(shí)驗(yàn)研究
基于第二代高溫超導(dǎo)帶材的超導(dǎo)限流電纜限流特性研究
《覺(jué)醒年代》的“出圈”秘籍
Nginx-rtmp-module流媒體服務(wù)器鑒權(quán)應(yīng)用研究
一種通過(guò)遠(yuǎn)程通信輔助實(shí)現(xiàn)SIM卡共享的方法
夏季BEAUTY秘籍100招
高溫超導(dǎo)限流器
滑雪秘籍
幾種常見(jiàn)的授權(quán)和鑒權(quán)技術(shù)(五)