4.Nginx配置进阶(四)
Nginx配置
==============================================================================
概述:
? 本章我們將繼續介紹Nginx中的配置,主要內容如下:
Web 架構擴展思路及相關概念(正反向代理、CDN、GLSB和緩存服務器);
ngx_http_proxy_module模塊;
? ·實驗:nginx反向代理后端單臺web服務器;
??·proxy_set_header field value;
??·proxy的緩存,及實驗定制調用緩存機制;
ngx_http_upstream_module模塊?
??·實驗:定義使用nginx以負載均衡的方式進行響應。
??·調度算法
ngx_stream_core_module模塊
??·實驗:基于stream實現負載均衡SSH服務
nginx的其它的二次發行版:
======================================================================
Web 架構擴展思路
?1.正向代理和反向代理:
★正向代理
☉定義:
是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。
通俗理解:主要就是代理客戶端去訪問互聯網上各種各樣的服務,是用來隱藏客戶端的。
附圖:
? 正向代理
★反向代理(Reverse Proxy)
☉定義:
指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。
☉通俗的理解:
向外宣稱自己監聽在某個端口之上,擁有某個服務,但本身并不提供任何內容,而是把相關的請求轉發至后端主機來進行提供服務,用來隱藏服務端
附圖:
? 反向代理
★兩者區別
☉從用途上來講:
◆正向代理的典型用途是:
為在防火墻內的局域網客戶端提供訪問Internet的途徑。正向理還可以使用緩沖特性減少網絡使用率。
◆反向代理的典型用途是:
將防火墻后面的服務器提供給Internet用戶訪問。反向代理還可以為后端的多臺服務器提供負載平衡,或為后端較慢的服務器提供緩沖服務。另外,反向代理還可以啟用高級URL策略和管理技術,從而使處于不同web服務器系統的web頁面同時存在于同一個URL空間下。
☉從安全性來講:
正向代理允許客戶端通過它訪問任意網站并且隱藏客戶端自身,因此你必須采取安全措施以確保僅為經過授權的客戶端提供服務。
反向代理對外都是透明的,訪問者并不知道自己訪問的是一個代理。
?2.CDN和GSLB
★CDN(Content Delivery Network)
☉定義:
CDN是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。
☉CDN的關鍵技術:
內容存儲和分發技術。
☉CDN的基本原理:
是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。
☉目的:
是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
★GSLB:Global Service LB(全局負載均衡器)
☉作用:
實現在廣域網(包括互聯網)上不同地域間的服務器的流量調配,保證使用最佳的服務器服務離自己最近的客戶,從而確保訪問質量。
附圖:
★SLB:Service LB
★應用程序發布:
灰度模型
?3.緩存服務器
★定義:
緩存指的是將需要頻繁訪問的網絡內容存放在離用戶較近、訪問速度更快的系統中,以提高內容訪問速度的一種技術。緩存服務器就是存放頻繁訪問內容的服務器。
緩存提供了比將訪問對象放在Internet Web服務器上更好的方法,它將需要頻繁訪問的Web頁面和對象保存在離用戶更近的系統中,當再次訪問這些對象的時候加快了速度。
★緩存服務器原理及應用模式:
☉Web緩存服務器的應用模式主要是正向代理和反向代理。
☉正向代理(Proxy)模式
代理網絡用戶訪問internet,客戶端將本來要直接發送到internet上源服務器的連接請求發送給代理服務器處理。正向代理的目的是加速用戶在使用瀏覽器訪問Internet時的請求響應時間,并提高廣域網線路的利用率。正向代理瀏覽器無需和該站點建立聯系,只訪問到Web緩存即可。通過正向代理,大大提高了后續用戶的訪問速度,使他們無需再穿越Internet,只要從本地Web緩存就可以獲取所需要的信息,避免了帶寬問題,同時可以大量減少重復請求在網絡上的傳輸,從而降低網絡流量,節省資費。
☉反向代理(Reverse Proxy)模式
針對Web服務器加速功能的,在該模式中,緩存服務器放置在web應用服務器的前面,當用戶訪問web應用服務器的時候,首先經過緩存服務器,并將用戶的請求和應用服務器應答的內容寫入緩存服務器中,從而為后續用戶的訪問提供更快的響應。
ngx_http_proxy_module模塊:
?1.proxy_pass URL
★作用:
將作為代理服務器,把客戶端訪問的資源的url映射到后端服務器;
★使用位置(Context)
location, if in location, limit_except
★三種使用情況:
☉proxy_pass后面的路徑不帶uri時,其會將location的uri傳遞給后端主機;
☉proxy_pass后面的路徑是一個uri時,其會將location的uri替換為proxy_pass的uri;
☉如果location定義其uri時使用了正則表達式的模式,則proxy_pass之后必須不能使用uri; 用戶請求時傳遞的uri將直接附加代理到的服務的之后;
實驗:驗證nginx的反向代理:
1.實驗環境
? ?準備兩臺虛擬主機,一臺作為nginx反向代理服務器,另外一臺作為后端web服務器;nginx代理服務器要有一個外網網卡保障和客戶端通信,還要有一個內網網卡和后端主機通信;后端web服務器的內網要和nginx的內網在同一網段,這里虛擬機內網網卡采用的是VMnet1模式,進行通信。
2.實驗環境搭建:
?1)首先部署好一臺虛擬主機作為nginx反向代理服務器,外網網卡ip為10.1.252.161,內網ip為192.168.22.1
?
? 2)現在我們來部署后端web服務器,ip地址為192.168.22.2/24,并提供測試頁面,這里為了實驗,又創建了一個admin目錄,并也提供了測試頁,注意,這里后端主機不用指網關,因為他和代理服務器的內網就在同一網段,中間也沒有路由,如果有路由的話,還是需要加網關的。
?3)如上,整個實驗的環境就已經搭建完成,我們啟動后端web服務器,然后現在代理服務器上請求后端服務器,可以正常返回結果,如下:
3.實驗操作
?1)現在我們在nginx的代理服務器上去編輯其配置文件/etc/nginx/conf.d/defaut.conf,讓其把所有內容代理至后端web服務器
?啟動nginx代理服務器,在瀏覽器中訪問代理服務器10.1.252.161,發現直接代理至后端web服務器,如下:
? 上面是把root注釋掉了,如果不注釋,兩個都存在的話,同樣也會代理至后端服務器,即:有proxy,root的存在就沒有意義了。
?2)現在我們不代理整個根,我們只代理admin目錄至后端服務器
①首先不加admin用瀏覽器訪問,則訪問的是nginx代理服務器的默認測試頁,如下:
②加上admin目錄,因為proxy后面有uri所以,會將其替換掉location的uri,即訪問的是后端服務器的默認測試頁,如下:
③現在我們把proxy后面的uri去掉,這是會將location中的uri補到proxy的后面,即訪問的是后端主機admin目錄下的默認頁面
? 訪問如下:
?3)我們也可以使用正則表達式匹配,把某些符合條件或者同一類資源的url,代理至后端服務器,假如,我這里只把圖片類的資源代理至后端服務器
?訪問如下:
?4)現在我在后端主機上部署安裝php并啟動(ap基于模塊),同樣在客戶端向調度器請求以.php結尾的動態資源,發現同樣可以調度到后端服務器中,然后響應給客戶端,如下;
?
? 在瀏覽器中請求如下:
??
?如上,我們在后端服務器如果再安裝php-mysql驅動,mariadb數據庫,啟動mysql數據庫,就可以運行php的應用程序了,這樣我們就基于proxy模塊部署了一個lnamp環境。
心得:
? 如此一來,我們就可以把不同的資源分發到不同的服務器上去運行了,如果我們把所有以.php結尾的動態資源代理到后端另外一臺服務器,把根的靜態資源代理至另外一臺后端服務器,(location中正則表達式的優先級比不帶符號的優先級高)這樣我們就實現了動靜分離;
?2.proxy_set_header field value;
★作用:
設定發往后端主機的請求報文的請求首部的值;
★使用位置(Context)
http, server, location
★
☉proxy_set_header X-Real-IP ?$remote_addr;
直接記錄前端主機的ip地址(如果前端主機不是客戶端而是二級代理,則記錄的還是二級代理的值)
☉proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
記錄前端主機發請求時記錄的proxy_add_x_forwarded_for的值
示例:
?1.因為后端的web主機接受的都是來自于nginx的代理服務器發送過來的請求,所以記錄的日志當中都是nginx代理服務器的ip地址,我們查看后端主機的訪問日志,如下:
? 2.我們要想讓后端服務器能夠記錄來自客戶端的請求的ip地址,就需要設定發往后端主機請求報文的首部信息了,如下:
??然后我們修改后端web服務器的配置文件/etc/httpd/conf/httpd.conf,在日志項的配置中添加指定記錄指定首部的值即可,如下:
? 再次用客戶daunting去訪問,發現成功記錄到客戶端的IP地址
?2.proxy的緩存
★proxy_cache_path
☉格式和適用位置:
Syntax:proxy_cache_path?path?[levels=levels]?[use_temp_path=on|off]?keys_zone=name:size?[inactive=time]? [max_size=size]?[manager_files=number]?[manager_sleep=time]?[manager_threshold=time]?[loader_files=number] [loader_sleep=time]?[loader_threshold=time]?[purger=on|off]?[purger_files=number]?[purger_sleep=time][purger_threshold=time];Default:—???? Context:http☉作用:
定義可用于proxy功能的緩存
☉參數:
◆levels=levels:
緩存目錄的層級數量,以及每一級的目錄數量;
levels=ONE:TWO:THREE ?例如:leves=1:2:2(每一級為16進制數)
◆keys_zone=name:size
k/v映射的內存空間的名稱及大小
緩存的組織方式:緩存是哈希值,而且對應的緩存文件名通常是文件內容的哈希內容,并且緩存層級是按照定義的多級結構去存放文件的;
◆inactive=time:
非活動時長;
◆max_size=size:
磁盤上用于緩存數據的緩存空間上限;
★proxy_cache zone | off;
作用:指明要調用的緩存,或關閉緩存機制;
適用位置:http, server, location
★proxy_cache_key string;
☉作用:
緩存中用于“鍵”的內容;
☉默認值:
proxy_cache_key $scheme$proxy_host$request_uri;(協議,代理的服務器,請求的uri)
★proxy_cache_valid [code ...] time;
作用:定義對特定響應碼的響應內容的緩存時長;
配置示例:
★proxy_cache_use_stale
☉語法,默認值及使用上下文
☉作用:
當代理服務器與后端主機出現故障時,在后端服務器的相應結果為哪種情況下,可以直接用緩存中的緩存項(可能是過期的內容)來響應客戶端;
★proxy_cache_methods GET | HEAD | POST ...;
☉作用:為哪些請求方法去檢測使用緩存;
If the client request method is listed in this directive then the response will be cached. “GET” and “HEAD” methods are always added to the list, though it is recommended to specify them explicitly.?
==========================================================================
★proxy_hide_header field;
☉作用:
指明要隱藏的后端主機響應報文的header,(即,指明哪些header不要傳給客戶端);
默認情況下是nginx不傳遞header
★proxy_connect_timeout time;
☉作用:定義代理服務器與后端主機的連接超時時長;
默認為60s,最大不能超過75s
★buffer相關的配置;
定義調用緩存機制
?1)首先要創建一個緩存的文件目錄,實際生產環境中可以放在固態磁盤上或者Raid0上,這樣I/O能力很強;(注意文可能需要修改屬主和屬組為nginx)
[root@nginx?nginx]#?mkdir?/var/cache/nginx/proxy_cache [root@nginx?nginx]#?ls?/var/cache/nginx/ client_temp??fastcgi_temp??proxy_cache??proxy_temp??scgi_temp??uwsgi_temp[root@nginx?~]#?ll?-d?/var/cache/nginx/proxy_cache drwxr-xr-x?3?nginx?root?14?Nov??1?14:57?/var/cache/nginx/proxy_cache?2)因為緩存只能定義在http配置段,所以編輯主配置文件/etc/nginx/nginx.conf
? 3)如上,已經定義好了,只需要在打算緩存的地方調用緩存即可,比如這里,我們對圖片作緩存,編輯配置文件/etc/nginx/conf.d/default.conf
?4)定義好之后保存退出,檢測語法,重載;然后用瀏覽器訪問morning.jpg,查看緩存目錄,已經記錄緩存,如下:
[root@nginx?~]#?tree?/var/cache/nginx/proxy_cache /var/cache/nginx/proxy_cache └──?0└──?6└──?4└──?635450b5c68b27bfaa2e0065cb86c4603?directories,?1?filengx_http_headers_module模塊
★作用:
向由代理服務器響應給客戶端的響應報文添加自定義首部,或修改指定首部的值;
★add_header name value [always];
☉作用:
添加自定義首部;
☉常用定義:
add_header X-Via ?$server_addr; ?代理服務器的地址
add_header X-Accel $server_name; 代理服務器的名稱
★expires [modified] time;
? ? expires epoch | max | off;
☉作用:
用于定義Expire或Cache-Control首部的值;即:設定響應報文的過期時長。
示例:
?1)向響應報文中,指明客戶端請求的內容是經由nginx代理服務器發送的(指明nginx代理服務器ip),編輯配置文件/etc/nginx/conf.d/default.conf
?瀏覽器訪問可以看到經由的nginxIP地址,如下:
注意:
nginx向后端代理時,具體要使用http_proxy模塊,還是fastcgi模塊,取決于后端服務器所支持的協議。如果后端主機為amp,則只能使用http_proxy模塊,因為我們面向客戶端提供服務的是httpd的http協議或者https協議。如果,后端主機為fpm server時,才能夠使用fastcgi模塊。
======================================================================================
ngx_http_upstream_module模塊?
功用:用于定義可以引用的服務器組,并定義這些服務器組的調度方法,從而完成能夠將多臺服務器,在面向前端的代理服務器請求時,可以以負載均衡的方式進行響應;
★upstream name { ... }
☉作用:定義后端服務器組,會引入一個新的上下文;
☉Context(使用位置): http
示例:
upstream?backend?{server?backend1.example.com?weight=5;server?127.0.0.1:8080???????max_fails=3?fail_timeout=30s;server?unix:/tmp/backend3;server?backup1.example.com??backup; }★server address [parameters];
☉作用:
在upstream上下文中server成員,以及相關的參數;
☉Context:upstream
☉address的表示格式:
◆unix:/PATH/TO/SOME_SOCK_FILE
某個套接字文件,要確保web服務器一定得是當前反代服務器上的web服務才可以;只能完成本地通信
◆IP[:PORT]
◆HOSTNAME[:PORT]
后端主機有基于主機名的虛擬主機,則向后端反代時會指向這個特定的虛擬主機,而不是默認虛擬主機
☉parameters:
◆weight=number
權重,默認為1;
◆max_fails=number
失敗嘗試最大次數;超出此處指定的次數時,server將被標記為不可用;
◆fail_timeout=time
設置將服務器標記為不可用狀態的超時時長;
◆max_conns
◆backup
◆down
實驗:定義使用nginx以負載均衡的方式進行響應。
?1.在上面實驗nginx反代單臺后端主機的基礎上,我們再添加一臺虛擬主機作為后端服務器web2,配置方法同上面后端web主機1(VMnat1模式,為內網地址),并提供默認測試頁面如下:
2.實驗:實現將用戶的請求代理至后端的服務器組
? 1)首先編輯主配置文件/etc/nginx/nginx.conf,在http段的上下文中定義upstream服務器組;
? 2)然后,編輯配置文件/etc/nginx/conf.d/default.conf(上例中的配置已經清空,這是原始配置文件),使nginx反代至upstream組,如下:
? 配置好之后,保存,重載,使用瀏覽器訪問,可以發現后端兩臺web服務器以輪詢的方式響應
? 3)現在我們再來編輯主配置文件/etc/nginx/nginx.conf,在web1上添加權重wegit 2
? ?
? 再次測試,發現權重打的web1,響應的次數多
?
?4)現在我們來設置max_fails的值等于2,也就是說如果請求兩次失敗以后就標記為不可用,如下:
? 我們現在把后端web2服務器httpd停掉,再去訪問,發現停掉web2之后,nginx代理服務器只向web1服務器調度;
?然后我們把停止服務的web2再啟動起來,發現一段時間之后,又可以正常被調度至web2的服務之上了
? 5)如果在一個服務器后面添加backup參數,則表示這個服務器為備用服務器。只用當所有的后端服務器全都不能正常工作時,這臺備用服務器才啟用,開始工作;只要有一臺后端服務器恢復工作,則備用服務器就停止工作。
? 6)如果在一個服務器的后面添加參數down,則表示這個服務器不可用,一般在應用程序發布,灰度模型時使用,如果服務器調試好要上線,只要把down去掉即可
?2.其他調度算法
★least_conn;
最少連接調度算法,當server擁有不同的權重時其為wlc;
★ip_hash;
源地址hash調度方法;
★hash key [consistent];
基于指定的key的hash表來實現對請求的調度,此處的key可以直接文本、變量或二者的組合;
☉作用:將請求分類,同一類請求將發往同一個upstream server;
If the consistent parameter is specified the ketama consistent hashing method will be used instead.
★keepalive connections;
為每個worker進程保留的空閑的長連接數量;
示例:
1.ip_hash算法:
?在上例的基礎上,我們采用ip_hash的調度方法,同樣編輯配置文件如下:
? ?使用curl命令訪問可以發現第一次訪問被調度的的后端服務器將始終為這個客戶端提供服務,如下:
2.hash key算法
?1)我們現在對客戶請求的url做哈希算法,為了驗證此算法,現在我們在后端的兩臺主機分別創建10個文件(url),url的名稱都是相同的,內容不同,以此來判斷到底是來自后端的哪個主機,如下:
?現在我們不添加調度算法,對test0.html請求,可以發現,在后端的兩臺服務器上做輪詢,如下:
[root@CentOS6?~]#?for?i?in?{1..10};do?curl?http://10.1.252.161/test0.html;done Test?Page?0?ON?Server?1 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?1 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?1 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?1 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?1 Test?Page?0?ON?Server?2?2)現在我們把用戶請求的uri做哈希運算作為調度算法,編輯配置文件如下:
?測試我們發現,只要第一次請求的uri調度到后端某臺服務器,將會一直在此服務器之上,如下:
[root@CentOS6?~]#?for?i?in?{1..10};do?curl?http://10.1.252.161/test0.html;done Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 [root@CentOS6?~]#?for?i?in?{1..10};do?curl?http://10.1.252.161/test5.html;done Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 Test?Page?5?ON?Server?1 [root@CentOS6?~]#?for?i?in?{1..10};do?curl?http://10.1.252.161/test3.html;done Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 Test?Page?3?ON?Server?2 [root@CentOS6?~]#?for?i?in?{1..10};do?curl?http://10.1.252.161/test0.html;done Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2 Test?Page?0?ON?Server?2ngx_stream_core_module模塊
? ? ? 功用:模擬反代基于tcp或udp的服務連接,即工作于傳輸層的反代或調度器;
★stream { ... }
作用:定義stream相關的服務;
Context:main
★listen
Syntax:listen?address:port?[ssl]?[udp]?[proxy_protocol]?[backlog=number]?[bind]?[ipv6only=on|off]?[reuseport]?[so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];示例:
實驗:將客戶端訪問SSH服務調度至后端的服務器組,實現負載均衡
?1)因為stream是和http同等級別的,所以要定義在主配置段,我這里編輯配置文件/etc/nginx/nginx.conf將http段的文件全都注釋掉僅保留include配置,如下:
[root@centos7?nginx]#?cat?nginx.confuser??nginx; worker_processes??1;error_log??/var/log/nginx/error.log?warn; pid????????/var/run/nginx.pid;events?{worker_connections??1024; }#http?{ #????include???????/etc/nginx/mime.types; #????default_type??application/octet-stream; # #????log_format??main??'$remote_addr?-?$remote_user?[$time_local]?"$request"?' #??????????????????????'$status?$body_bytes_sent?"$http_referer"?' #??????????????????????'"$http_user_agent"?"$http_x_forwarded_for"'; # #????access_log??/var/log/nginx/access.log??main; # #????proxy_cache_path?/var/cache/nginx/proxy_cache?levels=1:1:1?keys_zone=pxycache:20m?max_size=1g; #???? #????upstream?websrvs?{ #?????????server?10.1.0.7?max_fails=2; #?????????server?10.1.0.8?max_fails=2; #????}? # #????sendfile????????on; #????#tcp_nopush?????on; # #????keepalive_timeout??65; # #????gzip??on; #????gzip_comp_level?7; #????gzip_disable?Chrome; #????gzip_types?text/html,text/css,text/xml,text/plain; #????gzip_min_length?1K; #????gzip_vary?on; #include?/etc/nginx/conf.d/*.conf; #}?2)然后我在/etc/nginx/conf.d/下重新定義一個ssh.conf的文件來定義后端的服務器組,來調度實現SSH服務的負載均衡,如下:
[root@centos7?nginx]#?cd?conf.d [root@centos7?conf.d]#?ls default.conf.bak??default.conf.proxy??default.conf.upstream??ssh.conf [root@centos7?conf.d]#?cat?ssh.conf? stream?{upstream?sshsrvs?{server?192.168.22.2:22;server?192.168.22.3:22;least_conn;}server?{listen?10.1.252.161:22022;proxy_pass?sshsrvs;} }?3)在CentOS 6的客戶端遠程連接調度器的ssh服務,可以看到兩次連接分別調度至后端的兩臺不同服務器,可見這里我們定義的最少連接算法發揮了作用,如下:
[root@CentOS6?~]#?ssh?-p?22022?root@10.1.252.161 The?authenticity?of?host?'[10.1.252.161]:22022?([10.1.252.161]:22022)'?can't?be?established. RSA?key?fingerprint?is?05:e4:58:d4:d2:ad:ac:f3:a1:5e:39:27:7e:2d:09:94. Are?you?sure?you?want?to?continue?connecting?(yes/no)??yes Warning:?Permanently?added?'[10.1.252.161]:22022'?(RSA)?to?the?list?of?known?hosts. root@10.1.252.161's?password:? Last?failed?login:?Wed?Nov??2?10:45:03?CST?2016?from?192.168.22.1?on?ssh:notty There?was?1?failed?login?attempt?since?the?last?successful?login. Last?login:?Wed?Nov??2?09:35:17?2016?from?192.168.22.1 [root@localhost?~]#?ifconfig eno16777736:?flags=4163<UP,BROADCAST,RUNNING,MULTICAST>??mtu?1500#?inet?192.168.22.3??netmask?255.255.255.0??broadcast?192.168.22.255inet6?fe80::20c:29ff:fe7d:e27??prefixlen?64??scopeid?0x20<link>ether?00:0c:29:7d:0e:27??txqueuelen?1000??(Ethernet)RX?packets?2524??bytes?254519?(248.5?KiB)RX?errors?0??dropped?0??overruns?0??frame?0TX?packets?210??bytes?41725?(40.7?KiB)TX?errors?0??dropped?0?overruns?0??carrier?0??collisions?0lo:?flags=73<UP,LOOPBACK,RUNNING>??mtu?65536inet?127.0.0.1??netmask?255.0.0.0inet6?::1??prefixlen?128??scopeid?0x10<host>loop??txqueuelen?0??(Local?Loopback)RX?packets?0??bytes?0?(0.0?B)RX?errors?0??dropped?0??overruns?0??frame?0TX?packets?0??bytes?0?(0.0?B)TX?errors?0??dropped?0?overruns?0??carrier?0??collisions?0[root@CentOS6?~]#?ssh?-p22022?root@10.1.252.161 The?authenticity?of?host?'[10.1.252.161]:22022?([10.1.252.161]:22022)'?can't?be?established. RSA?key?fingerprint?is?cf:7d:49:75:55:54:45:88:a3:dd:ff:f3:87:be:3f:06. Are?you?sure?you?want?to?continue?connecting?(yes/no)??yes Warning:?Permanently?added?'[10.1.252.161]:22022'?(RSA)?to?the?list?of?known?hosts. root@10.1.252.161's?password:? Last?login:?Wed?Nov??2?09:37:57?2016?from?192.168.22.1 [root@centos7?~]#?ifconfig eno16777736:?flags=4163<UP,BROADCAST,RUNNING,MULTICAST>??mtu?1500#?inet?192.168.22.2??netmask?255.255.255.0??broadcast?192.168.22.255inet6?fe80::20c:29ff:fe2b:b6e7??prefixlen?64??scopeid?0x20<link>ether?00:0c:29:2b:b6:e7??txqueuelen?1000??(Ethernet)RX?packets?2608??bytes?261546?(255.4?KiB)RX?errors?0??dropped?0??overruns?0??frame?0TX?packets?166??bytes?36506?(35.6?KiB)TX?errors?0??dropped?0?overruns?0??carrier?0??collisions?0lo:?flags=73<UP,LOOPBACK,RUNNING>??mtu?65536inet?127.0.0.1??netmask?255.0.0.0inet6?::1??prefixlen?128??scopeid?0x10<host>loop??txqueuelen?0??(Local?Loopback)RX?packets?5??bytes?560?(560.0?B)RX?errors?0??dropped?0??overruns?0??frame?0TX?packets?5??bytes?560?(560.0?B)TX?errors?0??dropped?0?overruns?0??carrier?0??collisions?0=============================================================================
nginx的其它的二次發行版:
tengine
OpenResty
思考:
動態資源存儲一組服務器、圖片資源存在一組服務器、靜態的文本類資源存儲在一組服務器;如何分別調度?
動態資源基于fastcgi(lnmp)或http協議(lnamp)?
轉載于:https://blog.51cto.com/1992tao/1868267
總結
以上是生活随笔為你收集整理的4.Nginx配置进阶(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vertica的这些事lt;十五gt;—
- 下一篇: Nginx —— 检查配置文件ngi