Nginx自學筆記

2022-03-12 21:17:44 字數 3602 閱讀 4844

標籤(空格分隔): nginx 享學

= 全匹配

^~ 字首匹配

~ 正則匹配

~* 正則不區分大小寫匹配

空格字首匹配。這種匹配和^~匹配方式一樣,但是它是在正則之後匹配

location /taobao 

location /

我理解的虛擬主機就和iis的虛擬主機差不多,可以讓nginx監聽多個埠。同時也可以配置通過不同的server_name過來的資料能夠獨立處理

虛擬主機可以單獨配置到不同的檔案中。然後在nginx.conf裡面引用

一般配置路徑是:/etc/nginx/con.d

引用:include /etc/nginx/con.d/*.conf

root與alias主要區別在於nginx如何解釋location後面的uri,這會使兩者分別以不同的方式將請求對映到伺服器檔案上。

root的處理結果是:root路徑+location路徑

alias的處理結果是:使用alias路徑替換location路徑

alias是乙個目錄別名的定義,root則是最上層目錄的定義。

還有乙個重要的區別是alias後面必須要用「/」結束,否則會找不到檔案的。。。而root則可有可無~~

注意:使用alias時,目錄名後面一定要加"/"。

alias在使用正則匹配時,必須捕捉要匹配的內容並在指定的內容處使用。

alias只能位於location塊中。(root可以不放在location中)

都是對預置變數rootpath賦值

參考文章[ ]

rewrite regex replacement [flag]

location /
rewrite就是重定向的意思,從上面的示例可以看到有1個關鍵字和3個引數

引數說明

regex

表示匹配url的正規表示式,不包含ip和埠那部分。

replacement

表示跳轉後的位址,$1表示正則匹配的第乙個值,如果不需要引數,上面的正則可以寫為^/

flag

這個值總共有四個選項,如果為空,則類似於last,但是會將rewrite執行完

就是賦值

set $a 32;
反向**就是將請求的位址**到其它位址去,瀏覽器位址會發生變化。 [ ]

location /proxy/

另外路徑裡面的/proxy/後面的斜槓也會影響匹配結果

複雜的**裡面還可以通過正則獲取url裡面的內容並拼裝為新的url進行**

location ~* /wap/(\d+)/(.+)

1.在http節點下,加入upstream節點。

upstream linuxidc
2.將server節點下的location節點中的proxy_pass配置為:http:// + upstream名稱,即「http://linuxidc」.

location /
預設是輪詢,每個ip訪問一次。

3.注意

rewrite階段

access階段

content階段

其他階段

location=/
上面的**將輸出2個64。這裡就涉及到nginx的執行階段問題了。

示例

location /
這裡的index是根據url匹配,如果url的結尾不是/,那麼就不會去匹配index,因為此時會被當作檔案,因此不需要預設檔案

if語句沒有else

-f, !-f:判斷指定的路徑是否為存在且為檔案;

-d, !-d:判斷指定的路徑是否為存在且為目錄;

-e, !-e:判斷指定的路徑是否存在,檔案或目錄均可;

-x, !-x:判斷指定路徑的檔案是否存在且可執行;

}

location ^~ /qq.png
首先把服務的定義**貼出來

server 

}

通過./sbin/nginx -v檢視是否安裝https模組

--with-http_ssl_module代表安裝了的

執行四步生成ssl上面的server.crt和erver_nopass.key檔案

1.openssl genrsa -des3 -out server.key 1024

提示輸入密碼,就輸入123456。會再次確認密碼

2.openssl req -new -key server.key -out server.csr

提示輸入密碼就輸入:123456,輸入國家:cn,輸入省份:cq,其它的直接按回車

3.openssl rsa -in server.key -out server_nopass.key

提示輸入密碼就輸入:123456

4.openssl x509 -req -days 365 -in server.csr -signkey server_nopass.key -out server.crt

就按上面的服務配置就可以了

可以把keepalived和nginx當作獨立的兩個程式。keepalived主要是用來提供乙個虛擬的ip位址,我們把這個ip稱為vip。當主伺服器掛了的時候,從伺服器就自動暴露乙個vip出來。

首先需要安裝keepalived

peter老師提到的,根據url進行分割,然後通過location判斷命中和未命中的path。根據最後的/去決定是否將命中的路徑加進去。

同時對於rootalias也適用這種方式。

高可用、高併發。死了還能用就是高可用

keepalived也可以和tomcat實現高可用

有時間研究一下:

學到第三課了(09-18)

java thread自學筆記

執行緒有多種寫法。第一種是實現runnable介面。第二種是繼承thread類。第三種是直接寫runnable的實現方法。public class threadtest thread t new thread r t.run output foo t.start output foo try cat...

OC自學筆記

變數資料修飾 auto register extern static 預設auto int i 0 等於 auto int i 0 register高效變數 register int i 0 分配數量有限,跟系統有關,可能會降為auto extern全域性變數 extern int i 0 相同專案...

GEF自學筆記

gef模型 控制器完美分離模型跟檢視。但是控制器負擔重。於是gef通過請求和編輯策略及命令模式很好的解決了控制器的負擔。使每一部分保持最小的依賴。gef命令請求及響應流程如下。1.接收使用者操作,轉換成相應請求 2.控制器接收請求並把請求交由相應的編輯策略管理器處理 3.編輯策略管理器根據請求的請求...