nginx功能擴充套件整理

2021-09-25 07:49:48 字數 1754 閱讀 3227

0、基本負載均衡配置

更新/etc/nginx/conf.d/default.conf,配置反向**:

location /
重新啟動nginx:

sudo service nginx restart
1、子請求

當乙個請求發起乙個「子請求」的時候,依照 nginx 的術語,習慣把前者稱為後者的「父請求」(parent request)。

location /main 

location /foo

location /bar

輸出:

$ curl location/main

$ foo   03.  bar

這裡,main location就是傳送2個子請求,分別到foo和bar。這就類似一種函式呼叫。

「子請求」方式的通訊是在同乙個虛擬主機內部進行的。所以 nginx 核心在實現「子請求」的時候,就僅僅呼叫了若干個 c 函式,全然不涉及不論什麼網路或者 unix 套接字(socket)通訊。我們由此能夠看出「子請求」的執行效率是極高的。

2、ngx_lua簡單例子

}}輸出:

$ curl 'localhost/lua'

hello,lua。

3、配置session粘滯

重新啟動tomcat一切完成,你現在可以看到tomcat會話儲存在redis中,使用先前tomcat內建案例,試驗兩個tomcat開機和關機不同情況進行測試,會話資料都不會受到影響。

4、nginx集群設定方向

如果有多台nginx想實現負載均衡的話,

1、每台nginx都有公網位址,在網域名稱處設定同個網域名稱多個指向,最簡單實現輪洵。但故障切負會慢一點。

2、一台公網nginx通過upstream功能,輪洵、ip、url多方式分發到內網多台nginx。但公網的nginx如果down機的話,內網全段。

3、一對公網nginx加三個公網ip,通過keepalive實現高可用,再upstream到內網(就是我們剛剛上一節講的主從備份)。

一般來說,上面1、2、3種方法基本可以解決,建議用2或3;

如果併發量真的巨大的話,一般就要借助硬體f5等裝置做負載均衡,跟dns、cdn等服務商合作做網域名稱解析**、快取配置,這也是目前大多數大廠的架構配置。

5、失效轉移設定

如果後端tomcat伺服器處理超時,則nginx不請求下乙個tomcat節點,而是直接返回。nginx預設,會重複嘗試所有的節點以後,才會返回給瀏覽器錯誤。例如:在location設定引數(預設值也是如此): 

其中有乙個引數值 timeout,這個引數代表如果超時,則嘗試其他節點。因此要去掉這個引數,修改後如下 

使用lua擴充套件nginx的功能

通常,nginx是作為乙個負載均衡伺服器或者web伺服器使用,但是存在這樣一種情況 當太多的無效請求通過nginx分發到上游的伺服器的時候,雖然上游的伺服器集群進行了水平擴充套件,但是當nginx僅僅做乙個請求分發的動作的時候,太多的無效請求直接到達上游伺服器,這樣顯然不太好。所以需要擴充套件一下n...

記一次 已有nginx擴充套件 https功能

背景 在用的nginx 僅支援http 功能,需要擴充套件 https 功能。openssl 是乙個強大的安全套接字層密碼庫,囊括主要的密碼演算法 常用的金鑰和證書封裝管理功能及ssl協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http協議,還支援https 即在ssl協議上傳...

nginx擴充套件模組

url 輸出內容為我自定義的字串,比如 i try to nginx 這裡介紹以下步驟 第一步 建立任意乙個目錄,比如 ngx hello 第二步 在這個資料夾中建立乙個config檔案,內容如下 ngx addon name ngx xtest 這裡指定模組名稱 http modules http...